使用DataContracts,您可以从IExtensibleDataObject派生,以允许往返工作,而不会丢失XML文件中的任何未知附加数据。
我无法使用DataContract,因为我需要控制输出XML的格式。但我还需要能够在旧版本的应用程序中读取未来版本的XML文件,而不会丢失XML文件中的任何数据。
e.g。
XML v1:
<Person>
<Name>Fred</Name>
</Person>
XML v2:
<Person>
<Name>Fred</Name>
<Age>42</Age>
</Person>
如果从我的应用程序的v1读取XML v2文件,则反序列化并将其再次序列化将其转换为XML v1文件。即“年龄”字段被删除。
ImltensibleDataObject是否可以与XmlSerializer一起使用,以避免Age字段消失?