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 |
---|---|
Appelé avant de sérialiser le type. |
|
Appelé après avoir sérialisé le type. |
|
Appelé avant de désérialiser le type. |
|
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