实现与.NET序列化的版本兼容性有哪些方法?
答案 0 :(得分:1)
如果你的意思是BinaryFormatter(这通常是踢的地方) - 不要;它不适合存储(IMO) - 仅用于传输(并且版本控制在这里不是问题,因为您可能控制管道的两端)。许多其他各种系列产品都可供选择;他们中的大多数人都可以通过版本控制来完成。
就个人而言,我会选择:
使用其中任何一个,您应该在版本之间,添加成员,重命名字段等等。
实际上,我使用上面的3 即使我只是在运输(不存储)。
答案 1 :(得分:0)
我只能以相当一般的方式回答。
要控制二进制序列化中的版本差异,请阅读以下MSDN文章:
http://msdn.microsoft.com/en-us/library/ms229752(v=vs.80).aspx
对于XML序列化我没有文章,但是MSDN会解释使用XML属性来控制序列化,这些也有助于解决版本问题:
http://msdn.microsoft.com/en-us/library/83y7df3e(v=VS.85).aspx
http://msdn.microsoft.com/en-us/library/2baksw0z(v=VS.85).aspx
OnDeserializedAttribute
也有助于手动处理版本控制,您可以在此处默认新值,这些值不是从反序列化流中设置的:
http://msdn.microsoft.com/en-us/library/system.runtime.serialization.ondeserializedattribute.aspx