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

本文关键字:类型 可升级 文件 自定义 何使 我的 | 更新日期: 2024-10-26 06:29:40

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

我希望能够通过向类添加更多属性来升级我的应用程序,并且可能还删除属性。如何让旧版本的应用程序处理新文件 - 无论它能得到什么,更重要的是,我怎样才能让新版本的应用程序使用旧文件?是否有实现这一目标的常见做法?

我在发布第一个版本之前问这个问题 - 如何使文件类型易于升级?

(谷歌搜索遇到了很多"噪音"。

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

我认为有两种方法

  • 您可以使用Yogi提到的版本容忍序列化之类的东西
  • 或者您可以转换为新格式 - Visual Studio,Royal TS,我认为还有更多人执行以下操作。

也许你应该查看Protocol Buffers的C#实现。这是谷歌开发的一种序列化类型(http://code.google.com/p/protobuf-net/)它使用id进行属性识别。因此,序列化的数据不受属性名称等的约束。

正如你在第一个版本发布之前所问的那样,我及时告诉你:从长远来看,你不会对二进制格式化程序感到满意。我认为您应该将存储对象模型与"操作对象"分开。

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

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