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?