XmlSerializer等效于IExtensibleDataObject

时间:2010-03-24 20:51:25

标签: c# xml serialization xmlserializer iextensibledataobject

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

1 个答案:

答案 0 :(得分:5)