Jea*_*rin 5 c# xml serialization persistence xml-serialization
我有一个课程,随着时间的推移会经历一些版本的变化.作为我的应用程序启动的一部分,来自此类内部的数据被序列化和反序列化.我遇到的问题是,如果我通过添加更多属性来更新类,然后启动应用程序,旧数据将无法正确加载.
我想要做的是覆盖反序列化步骤,我不介意从xml手动重建对象,因为我有一个版本号存储,可以用它来递归更新对象的版本.
有没有我可以实现的接口,或者我可以在某处设置的属性,能够做到这一点?
如果你想不出办法做我想做的事,那还有其他选择吗?例如我正在加载的xml版本中可能不存在的属性的默认值.
通常,对于版本控制,您可以对OptionalField
可能导致兼容性问题的新添加成员使用该属性。在序列化期间,如果成员未序列化,则会将成员值保留为 null,而不是引发异常。
另外,看看IDeserializationCallback.OnDeserialization
允许您自定义反序列化的界面。
归档时间: |
|
查看次数: |
4099 次 |
最近记录: |