【发布时间】:2011-08-22 09:32:29
【问题描述】:
我正在使用 DataContractSerializer 来存储我自己的类的对象以保存用户设置。 UserSettings 类使用其他一些不同数据类型的对象。我将所有这些类型添加到 DataContractSerializer 的 KnownTypes 参数中,效果很好。 但是我遇到了前向兼容性的问题。如果我使用新数据类型在 UserSerrings 类中引入新属性,它也适用于我的程序的新版本。但是老版本抛出异常说无法反序列化XML文件,因为数据类型不在KnownTypes数组中。 我只是想忽略这些类型,因为它们无论如何都没有在旧版本中使用。 我怎样才能做到这一点,以便旧版本可以读取和写入 xml 文件而忽略那些未知的属性/类型?
【问题讨论】:
-
我不知道 DCS 解决方案,但如果您不绑定到 xml,我可能有一个解决方案...
-
我不需要 xml。你有什么建议?
-
我维护 protobuf-net,一个替代的序列化器;意外的子类型可以被静默忽略,同时仍然保留层次结构中您确实期望的类型的任何值
标签: c# serialization xml-serialization