2
使用DataContracts可以从IExtensibleDataObject派生出来,以允许往返运行而不会丢失XML文件中的任何未知附加数据。XmlSerializer等价于IExtensibleDataObject
我无法使用DataContract,因为我需要控制输出XML的格式。但是我还需要能够在旧版本的应用程序中读取未来版本的XML文件,而不会丢失XML文件中的任何数据。
例如
XML V1:
<Person>
<Name>Fred</Name>
</Person>
XML V2:
<Person>
<Name>Fred</Name>
<Age>42</Age>
</Person>
如果从V1我的应用程序的读取XML文件V2,反序列化和序列化一次它把它变成一个XML文件V1。即“年龄”字段被删除。
有没有类似于IExtensibleDataObject,我可以使用XmlSerializer避免Age字段消失?
谢谢,正是我想要的。 我为每个可序列化类添加了以下属性: [XmlAnyElement] public XmlElement Anything; – demoncodemonkey 2010-03-25 13:51:59
哎呀,应该是:[XmlAnyElement] public XmlElement [] Anything; – demoncodemonkey 2010-03-25 14:27:16