我尝试使用BinaryFormatter
序列化我的对象:
private UserSettings _userSettings;
var serializer = new BinaryFormatter();
using (var file = new FileStream(@"D:\test.bin", FileMode.Create))
{
serializer.Serialize(file, _userSettings);
}
但是我得到了一个奇怪的例外:
输入' MyCustomUserControl'在Assembly' xxx'未标记为 序列化的。
班级UserSettings
没有对MyCustomUserControl
的任何引用,但它被MyCustomUserControl
引用。
答案 0 :(得分:2)
可以在事件中隐藏对控件的引用。如果您的UserSettings
类实现了订阅控件的事件,请将[field:NonSerialized]
属性添加到事件中:
[field:NonSerialized]
public event PropertyChangedEventHandler PropertyChanged;
答案 1 :(得分:1)
要使用BinaryFormatter
序列化程序,您的班级需要标记为Serializable
。这是一个例子:
[Serializable]
public class MyCustomUserControl: Control
{
//
}