.NET 2.0 introduit VTS (version Tolerant sérialisation, http://msdn.microsoft.com/en-us/library/ms229752(VS.80).aspx)Comment gérer les changements de sérialisation dans .NET 2.0
Un projet de test simple révèle que le comportement par défaut dans la version 2.0 est de ne pas jeter une exception sérialisation si un champ est ajouté à une classe, puis une tentative est faite pour désérialiser une instance de cette classe à partir d'une sérialisation binaire d'une instance de classe qui n'a pas le nouveau champ.
Le comportement par défaut dans 1.1 est de lancer une exception de sérialisation si un champ présent dans la classe est manquant dans les bits sérialisés binaires.
Outre la rétrocompatibilité (le code reposant sur les exceptions levées ne fonctionne plus), il y a un problème plus important: il n'y a pas de moyen évident d'émuler le comportement 1.1 dans 2.0. Comment est-ce que je émule le comportement de «jeter l'exception sur les champs manquants/supplémentaires» 1.1 dans 2.0?
Un grand merci, Miron
C'est ce que je pensais aussi. Mais un test simple avec une classe avec quelques champs (sans OptionalFieldAttribute, même code sur 1.1 et 2.0) lève une exception de sérialisation sur 1.1 et utilise silencieusement les valeurs par défaut sur 2.0. –
J'ai mis à jour l'entrée pour clarifier. –
Merci! Définir AssemblyProperty fait ce dont j'ai besoin. –