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に似たものはありますか?