2012-08-06 62 views
0

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

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

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

(谷歌搜索跑进了大量的“噪音”。)

+1

可能这将有助于http://msdn.microsoft.com/en-us/library/ms229752%28v=vs.80%29.aspx – yogi 2012-08-06 13:48:05

+0

@yogi你可以让你的评论到答案。它看起来很有保证。 – ispiro 2012-08-06 13:53:14

+0

不。链接不是答案。如果@yogi可以总结页面的内容(并链接到该页面),那将会作出回答。 – Oded 2012-08-06 13:55:25

回答

1

我认为有两种方式

  • 由约吉
  • 提到或者你可以转换到新的格式,你可以使用类似Version Tolerant Serialization - Visual Studio中,皇家TS,我想更多的做以下。
0

也许你应该看看协议缓冲区的C#实现。这是一种由google开发的序列化类型(http://code.google.com/p/protobuf-net/)它使用id来进行身份验证。所以你序列化的数据没有被属性名等绑定。

0

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

只是序列化程序的运行状态是指作为一个简单的序列化方法,但它从不断再次作出显著的变化对这些对象阻止。

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