我正在使用DataContractSerializer来持久保存对象。大多数类都有[DataContract]属性,但有一个(不确定原因)有[Serializable]。此类的属性具有[DataMember]属性。到目前为止,它已经运作正常。
最近,我尝试添加新属性,但在反序列化时出错。错误消息类似于:'属性Notes是预期但找到属性ModuleNr'。
我尝试添加[DataContract]属性,但得到了一个不同的错误,例如:'未找到id 15的反序列化对象'。似乎该课程根本没有被反序列化。
任何人都可以解释我做错了什么以及如何对现有对象进行反序列化。
感谢。
答案 0 :(得分:0)
是否持久化的对象使用较旧的类结构,并且您添加的属性是必需属性,导致反序列化失败?
此外,如果Serializable属性存在并且您不确定它的原因,那么验证其他代码是否未使用此类进行序列化可能是个好主意 - 如果是,则添加要添加的新属性可能会破坏它:))
希望这有帮助!