Sérialisation sélective

Une classe contient souvent des champs qui ne doivent pas être sérialisés. Par exemple, supposez qu'une classe stocke un ID de thread dans une variable membre. Lorsque la classe est désérialisée, il se peut que le thread stocké pour l'ID au moment de la sérialisation de la classe ne s'exécute plus ; la sérialisation de cette valeur est donc inutile. Vous pouvez empêcher des variables membres d'être sérialisées en les marquant avec l'attribut NonSerialized comme suit.

[Serializable]
public class MyObject 
{
  public int n1;
  [NonSerialized] public int n2;
  public String str;
}

Si possible, faites en sorte qu'un objet pouvant contenir des données de sécurité sensibles soit non sérialisable. Si l'objet doit être sérialisé, appliquez l'attribut NonSerialized aux champs spécifiques qui stockent des données sensibles. Si vous n'excluez pas ces champs de la sérialisation, notez que les données qu'ils stockent seront exposées à tout code autorisé à sérialiser. Pour plus d'informations sur l'écriture du code de sérialisation sécurisé, consultez Sécurité et sérialisation.

Voir aussi

Autres ressources

Sérialisation binaire
Remote Objects
Sérialisation XML et SOAP
Security and Serialization

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.