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