我试图围绕序列化。但是,如果出于任何原因我需要添加或删除某些值或属性会发生什么?这将如何影响内容?或者这不是问题吗?或者我该如何避免这种情况?
答案 0 :(得分:2)
正如人们已经指出的那样,这取决于你的序列化器。在这种情况下,XmlSerializer
更容易处理:
考虑使用Jon的答案获取更多提示,尤其是NonSerialized
和OptionalField
属性。
答案 1 :(得分:1)
这完全取决于您使用的序列化技术以及是否计划对旧对象进行反序列化。
我相信如果您添加或删除属性但仍希望反序列化旧版本的对象,可能会遇到一些问题,具体取决于您正在执行的序列化类型。
BinaryFormatter 和 SoapFormatter :
答案 2 :(得分:1)
我可以代表XmlSerializer,因为它在我自己的项目中广泛使用。
添加属性不会导致XmlSerializer出现任何问题,序列化xml中缺少的属性将保留其默认值。删除或重命名现有属性的效果仅仅是数据丢失。除非您处理原始的xml AS xml或文本文件,否则删除或重命名的属性中的数据将丢失。使用XmlSerializer时,不需要添加,删除或重命名属性的特殊属性。