Avec DataContracts, vous pouvez dériver de IExtensibleDataObject pour permettre au round-trip de fonctionner sans perdre de données supplémentaires inconnues de votre fichier XML.Equivalent XmlSerializer de IExtensibleDataObject
Je ne peux pas utiliser DataContract car j'ai besoin de contrôler le formatage du XML de sortie. Mais je dois également être capable de lire une version future du fichier XML dans l'ancienne version de l'application, sans perdre aucune des données du fichier XML.
par exemple.
XML v1:
<Person>
<Name>Fred</Name>
</Person>
XML v2:
<Person>
<Name>Fred</Name>
<Age>42</Age>
</Person>
Si la lecture d'un fichier v2 XML à partir v1 de mon application, désérialisation et sérialisation il tourne à nouveau dans un fichier v1 XML. c'est-à-dire que le champ "Age" est effacé.
Y at-il quelque chose de similaire à IExtensibleDataObject que je peux utiliser avec XmlSerializer pour éviter la disparition du champ Age?
Merci, exactement ce que je voulais. J'ai ajouté la propriété suivante à chacune de mes classes sérialisables: [XmlAnyElement] public XmlElement Anything; – demoncodemonkey
Oups qui devraient être: [XmlAnyElement] public XmlElement [] Anything; – demoncodemonkey