抛出异常:"System.ComponentModel.ReflectPropertyDescriptor未标记为Serializable"
这是否意味着我自己错过了将某些内容标记为可序列化,还是这是我无法控制的事情?
BinaryFormatter
的NonSerializedAttribute
,XmlSerializer
的XmlIgnoreAttribute
等。PropertyDescriptor
实例通常意味着你的类作为属性包而运行;在这种情况下,你可能需要进行自定义序列化(ISerializable
/IXmlSerializable
)。如果该字段存在其他原因,请将其标记为要忽略的字段。INotifyPropertyChanged
)被UI挂钩(数据绑定)时,这种情况(或类似症状)也很常见;在这种情况下,你需要将支持字段标记为非序列化。我不知道VB如何处理,但是在C#中,你可以使用"field-like events"来实现:[field: NonSerialized]
public event EventHandler BarChanged;
[NonSerialized]
对我的事件不起作用。原来是缺少了 field:
。 - Joel Etherton你的类中有这种类型的字段吗?如果是这样,你将不得不自己实现ISerializable接口——自动实现要求你的所有字段都标记为Serializable。