C#BinaryFormatter Serialize UserControl

时间:2013-10-09 16:43:20

标签: c# serialization deserialization binaryformatter

是否可以使用BinaryFormatter Serialize / Deserialize方法来序列化和反序列化包含UI对象的类?我知道它可能不推荐,只有数据应该真正被序列化,但有没有理由不能在技术上支持它?

比如说,我有一个类,如:

public class MyClass
{
    private List<UC1> _ucList1 = new List<UC1>();
    private List<UC2> _ucList2 = new List<UC2>();

    public MyClass() {}
}

在上面的理论课中,UC1和UC2属于UserControl类型 - 所以用户控件列表。有没有理由不能反序列化?我做了一些测试,似乎序列化为一个字节数组很好,但反序列化例程抛出一个异常“在解析完成之前遇到的流结束。”

1 个答案:

答案 0 :(得分:0)

不,您应该使用标准的组件序列化。 二进制格式化程序将忽略扩展属性,仅设计属性,并且不会调用实现ISupportInitialize的组件的BeginInit / EndInit。 我不知道它会对代表(事件)做什么,可能它将无法序列化它们。

最后,如果我记得很好,WinForms中的任何类都没有使用Serializable属性

进行修饰