Partager via


Versioning

Le .NET Framework fournit la prise en charge du versioning et de l'exécution côte à côte et toutes les classes fonctionneront sur les différentes versions si les interfaces des classes restent les mêmes. Dans la mesure où la sérialisation concerne les variables de membre et non les interfaces, soyez prudent lorsque vous ajoutez des variables de membre à des classes qui seront sérialisées sur différentes versions, ou que vous en supprimez de celles-ci. Ceci est particulièrement vrai pour les classes qui n'implémentent pas l'interface ISerializable. Tout changement d'état de la version actuelle, comme l'ajout de variables de membre, le changement des types de variables ou le changement de leurs noms, signifie que les objets existants du même type ne peuvent être désérialisés avec succès que s'ils ont été sérialisés avec une version précédente.

Si l'état d'un objet doit être modifié d'une version à l'autre, les auteurs de classe ont deux choix :

  • Implémentez ISerializable. Ceci vous permet de contrôler précisément le processus de sérialisation et de désérialisation, permettant à l'état ultérieur d'être ajouté et correctement interprété pendant la désérialisation.
  • Marquez les variables de membre qui ne sont pas essentielles avec l'attribut NonSerialized. Cette option ne doit être utilisée que lorsque vous prévoyez des modifications mineures entre les différentes versions d'une classe. Par exemple, lorsqu'une nouvelle variable a été ajoutée à une version ultérieure d'une classe, la variable peut être marquée comme étant NonSerialized pour s'assurer que la classe reste compatible avec les versions précédentes.

Voir aussi

Sérialisation binaire | Accès aux objets dans d'autres domaines d'application à l'aide de .NET Remoting | Sérialisation XML