0

J'utilise DataContractSerializer pour enregistrer un grand nombre de classes différentes qui constituent une structure arborescente en fichiers XML. Je suis dans les premières étapes de l'écriture de ce logiciel, donc à ce stade, tous les différents composants changent un peu. Pourtant, chaque fois que je fais un changement dans une classe, je finis par casser ma capacité à ouvrir des fichiers précédemment sauvegardés.Un DataContractSerializer peut-il être configuré pour ignorer les erreurs dans un fichier plutôt que d'échouer entièrement?

Mes structures arborescentes seront toujours fonctionnelles si des composants manquent. Existe-t-il un moyen de dire à DataContractSerializer d'ignorer les données qu'il a un problème de désérialisation et de continuer plutôt que de simplement quitter le premier problème?

Je sais qu'une réponse serait d'écrire ma propre classe de sérialisation, mais je préfère ne pas passer le temps de le faire. Je sautais encore pour être en mesure de profiter de DataContractSerializer, mais sans que ce soit une situation de tout ou rien.

Répondre

0

Je pense que ce que vous cherchez est IExtensibleDataObject. De cette façon, tous les éléments inattendus sont lus dans un dictionnaire de nom-valeur géré en interne et peuvent même être sérialisés ultérieurement. Consultez les ressources suivantes pour obtenir de l'aide.

Blog post -- WCF Extensibility – Other Serialization Extensions

Forward-Compatible Data Contracts

Data Contract Versioning

+0

Même problème ici. C'était une bonne idée, j'ai essayé IExtensibleDataObject, mais cela ne semble pas fonctionner. Probablement dépend du sérialiseur, le mien est JSON et il pourrait être totalement ignorer cela. –

Questions connexes