Partager via


Rappels de sérialisation avec tolérance de version

Le modèle de programmation de contrat de données prend entièrement en charge les méthodes de rappel de sérialisation avec tolérance de version que les classes BinaryFormatter et SoapFormatter prennent en charge.

Attributs avec tolérance de version

Il existe quatre attributs de rappel. Chaque attribut peut être appliqué à une méthode que le moteur de sérialisation/désérialisation appelle à différents moments. Le tableau suivant explique quand utiliser chaque attribut.

Attribut Lorsque la méthode correspondante est appelée

OnSerializingAttribute

Appelé avant de sérialiser le type.

OnSerializedAttribute

Appelé après avoir sérialisé le type.

OnDeserializingAttribute

Appelé avant de désérialiser le type.

OnDeserializedAttribute

Appelé après avoir désérialisé le type.

Les méthodes doivent accepter un paramètre StreamingContext.

Ces méthodes sont principalement destinées à une utilisation avec le versioning ou l'initialisation. Pendant la désérialisation, aucun constructeur n'est appelé. Par conséquent, des membres de données risquent de ne pas être initialisés correctement (avec les valeurs par défaut prévues) si les données de ces membres ne figurent pas dans le flux entrant, par exemple, si les données viennent d'une version antérieure d'un type auquel il manque certains membres de données. Pour corriger ce problème, utilisez la méthode de rappel marquée avec OnDeserializingAttribute, comme indiqué dans l'exemple suivant.

Vous pouvez marquer uniquement une méthode par type avec chacun des attributs de rappel précédents.

Exemple

Voir aussi

Référence

OnSerializingAttribute
OnSerializedAttribute
OnDeserializingAttribute
OnDeserializedAttribute
StreamingContext

Autres ressources

Version-Tolerant Serialization