Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

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.

Afficher: