Serializzazione selettiva

Una classe spesso contiene campi che non devono essere serializzati. Si ipotizzi, ad esempio, che una classe archivi un ID di thread in una variabile membro. Quando la classe viene deserializzata, il thread il cui ID è stato archiviato al momento della serializzazione della classe potrebbe non essere più in esecuzione. Serializzare questo valore è quindi inutile. Per non serializzare le variabili membro, è possibile contrassegnarle con l'attributo NonSerialized, come illustrato di seguito.

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

Se possibile, rendere non serializzabili gli oggetti che possono contenere dati riservati. Se occorre serializzare l'oggetto, applicare l'attributo NonSerialized agli specifici campi in cui vengono archiviati i dati riservati. Se non si escludono tali campi dalla serializzazione, i dati in essi contenuti saranno esposti a qualsiasi codice che dispone di autorizzazioni alla serializzazione. Per ulteriori informazioni su come scrivere codice di serializzazione protetto, vedere Protezione e serializzazione.

Vedere anche

Serializzazione binaria | Accesso a oggetti in altri domini applicazione mediante .NET Remoting | Serializzazione XML e SOAP | Protezione e serializzazione