如何使我的自定义文件类型可升级?

时间:2012-08-06 13:44:58

标签: c# file .net-4.0

我有一个与我的应用程序关联的自定义文件类型,我只需将其序列化为文件即可保存类实例。

我希望能够通过向类中添加更多属性来升级我的应用程序,也许还可以删除属性。如何让旧版本的应用程序与新文件一起使用 - 无论它能获得什么,更重要的是,如何使用新版本的应用程序来使用旧文件?有没有实现这一目标的常见做法?

我在发布第一个版本之前问这个 - 如何让文件类型轻松升级?

(谷歌搜索遇到了很多“噪音”。)

3 个答案:

答案 0 :(得分:1)

我认为有两种方式

  • 您可以使用瑜伽士提及的Version Tolerant Serialization之类的内容
  • 或者您可以转换为新格式 - Visual Studio,Royal TS和我认为还有更多以下内容。

答案 1 :(得分:0)

也许您应该查看协议缓冲区的C#实现。这是由谷歌开发的一种序列化(http://code.google.com/p/protobuf-net/)它使用id进行身份识别。因此,序列化数据不会被属性名称等绑定。

答案 2 :(得分:0)

正如您在第一个版本发布之前所要求的那样,我及时告诉您:从长远来看,您对BinaryFormatter不满意。 我认为您应该将存储对象模型与“操作对象”分开。

只是序列化程序的运行时状态意味着一种简单的序列化方法,但它可以防止再次对那些永远的对象进行重大更改。

我认为proto-buf很好,因为版本控制路径非常清晰。此外,XmlSerializer序列化类很好,因为它们是可读的。