2

使用 DataContracts,您可以从 IExtensibleDataObject 派生以允许往返工作,而不会丢失 XML 文件中任何未知的附加数据。

我不能使用 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 字段消失?

4

1 回答 1

5

[XmlAnyAttribute][XmlAnyElement]

于 2010-03-24T22:48:09.623 回答