0

我有一个与我的应用程序关联的自定义文件类型,我通过简单地将类实例序列化到文件来保存它。

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

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

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

4

3 回答 3

1

我认为有两种方法

  • 您可以使用yogi 提到的诸如版本容忍序列化之类的东西
  • 或者您可以转换为新格式 - Visual Studio、Royal TS 和我认为更多的可以执行以下操作。
于 2012-08-09T11:39:52.343 回答
0

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

于 2012-08-06T13:56:43.500 回答
0

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

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

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

于 2012-08-06T14:57:43.363 回答