XmlSerializer эквивалент IExtensibleDataObject

С 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, чтобы избежать исчезновения поля Age?

1 ответ

Решение

[XmlAnyAttribute] а также [XmlAnyElement],

Другие вопросы по тегам