C#序列化对象版本
发布时间:2020-12-15 08:01:53 所属栏目:百科 来源:网络整理
导读:我有以下情况.在我的C#应用??程序中,我有一个使用XmlSerializer序列化的类.该类非常复杂,我的类的对象作为应用程序文件保存在本地磁盘上,可以在以后打开(经典保存工作和重新打开工作).我的问题是在开发过程中,被序列化的对象的类可能会改变.我想有一个版本系
我有以下情况.在我的C#应用??程序中,我有一个使用XmlSerializer序列化的类.该类非常复杂,我的类的对象作为应用程序文件保存在本地磁盘上,可以在以后打开(经典保存工作和重新打开工作).我的问题是在开发过程中,被序列化的对象的类可能会改变.我想有一个版本系统,它允许我的应用程序意识到它保存的xml属于旧版本,但仍然可以打开.旧的app版本也无法打开新的xml版本.
例如: class ComplexObject { public string settings1; public string settings2; } 我序列化对象,在生产中发送应用程序. class ComplexObject { public string settings1; public string settings2; public string settings3; } 我的新版本应用程序将如何打开旧类定义的序列化对象以及新类定义,并且在将文件加载到对象时没有错误(反序列化) 欢迎任何建议和基本样品! 谢谢 解决方法
Version-tolerant serialization
简而言之,您可以将字段标记为可选(并使用默认值填充它们)或实现反序列化构造函数,该构造函数将根据需要解析值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |