我有一个与我的应用程序关联的自定义文件类型,我只需将其序列化为文件即可保存类实例。
我希望能够通过向类中添加更多属性来升级我的应用程序,也许还可以删除属性。如何让旧版本的应用程序与新文件一起使用 - 无论它能获得什么,更重要的是,如何使用新版本的应用程序来使用旧文件?有没有实现这一目标的常见做法?
我在发布第一个版本之前问这个 - 如何让文件类型轻松升级?
(谷歌搜索遇到了很多“噪音”。)
答案 0 :(得分:1)
我认为有两种方式
答案 1 :(得分:0)
也许您应该查看协议缓冲区的C#实现。这是由谷歌开发的一种序列化(http://code.google.com/p/protobuf-net/)它使用id进行身份识别。因此,序列化数据不会被属性名称等绑定。
答案 2 :(得分:0)
正如您在第一个版本发布之前所要求的那样,我及时告诉您:从长远来看,您对BinaryFormatter不满意。 我认为您应该将存储对象模型与“操作对象”分开。
只是序列化程序的运行时状态意味着一种简单的序列化方法,但它可以防止再次对那些永远的对象进行重大更改。
我认为proto-buf很好,因为版本控制路径非常清晰。此外,XmlSerializer序列化类很好,因为它们是可读的。