是否可以使用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类型 - 所以用户控件列表。有没有理由不能反序列化?我做了一些测试,似乎序列化为一个字节数组很好,但反序列化例程抛出一个异常“在解析完成之前遇到的流结束。”
答案 0 :(得分:0)
不,您应该使用标准的组件序列化。 二进制格式化程序将忽略扩展属性,仅设计属性,并且不会调用实现ISupportInitialize的组件的BeginInit / EndInit。 我不知道它会对代表(事件)做什么,可能它将无法序列化它们。
最后,如果我记得很好,WinForms中的任何类都没有使用Serializable属性
进行修饰