XmlSerializer эквивалент IExtensibleDataObject - PullRequest
2 голосов
/ 24 марта 2010

С DataContracts вы можете наследовать от IExtensibleDataObject, чтобы разрешить циклическое переключение без потери каких-либо неизвестных дополнительных данных из вашего файла XML.

Я не могу использовать DataContract, потому что мне нужно контролировать форматирование выводаXML.Но мне также нужно иметь возможность читать будущую версию файла XML в старой версии приложения, не теряя при этом никаких данных из файла XML.

например,

XML v1:

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

XML v2:

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

Если при чтении файла XML v2 из v1 моего приложения его десериализация и сериализация снова превращает его в файл XML v1.то есть поле "Возраст" удалено.

Есть ли что-то похожее на IExtensibleDataObject, которое я могу использовать с XmlSerializer, чтобы избежать исчезновения поля Возраст?

1 Ответ

5 голосов
/ 25 марта 2010
...