2

DataContractsを使用すると、IExtensibleDataObjectから派生して、XMLファイルから不明な追加データを失うことなくラウンドトリップを機能させることができます。

出力XMLのフォーマットを制御する必要があるため、DataContractを使用できません。ただし、XMLファイルからデータを失うことなく、古いバージョンのアプリで将来のバージョンのXMLファイルを読み取ることができる必要もあります。

例えば

XML v1:

<Person>
    <Name>Fred</Name>
</Person>

XML v2:

<Person>
    <Name>Fred</Name>
    <Age>42</Age>
</Person>

アプリのv1からXMLv2ファイルを読み取る場合は、逆シリアル化して再度シリアル化すると、XMLv1ファイルになります。つまり、「年齢」フィールドが消去されます。

年齢フィールドが消えないようにするためにXmlSerializerで使用できるIExtensibleDataObjectに似たものはありますか?

4

1 に答える 1

5

[XmlAnyAttribute]および[XmlAnyElement]

于 2010-03-24T22:48:09.623 に答える