Serializzazione selettivaSelective serialization

Una classe spesso contiene campi che non devono essere serializzati.A class often contains fields that shouldn't be serialized. Ad esempio, si prenda in considerazione una classe che archivia un ID del thread in una variabile membro.For example, assume a class stores a thread ID in a member variable. Quando la classe viene deserializzata, il thread archivia l'ID nel caso in cui la classe serializzata non sia più in esecuzione. La serializzazione di questo valore non ha quindi senso.When the class is deserialized, the thread stored the ID for when the class was serialized might no longer be running; so serializing this value doesn't make sense. È possibile evitare che le variabili membro vengano serializzate contrassegnandole con l'attributo NonSerialized come riportato di seguito.You can prevent member variables from being serialized by marking them with the NonSerialized attribute as follows.

[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 sensibili alla sicurezza.If possible, make an object that could contain security-sensitive data nonserializable. Se l'oggetto deve essere serializzato, applicare l'attributo NonSerialized ai campi specifici che archiviano dati sensibili.If the object must be serialized, apply the NonSerialized attribute to specific fields that store sensitive data. Se non si escludono questi campi dalla serializzazione, è necessario essere consapevoli che i dati archiviati sono esposti a qualsiasi codice con le autorizzazioni per la serializzazione.If you don't exclude these fields from serialization, be aware that the data they store are exposed to any code that has permission to serialize. Per altre informazioni sulla scrittura di codice di serializzazione sicuro, vedere Sicurezza e serializzazione.For more information about writing secure serialization code, see Security and Serialization.

Avviso

La serializzazione binaria può rappresentare un pericolo.Binary serialization can be dangerous. Non deserializzare mai dati da un'origine non attendibile e non eseguire il round trip per i dati serializzati verso sistemi non sotto il proprio controllo.Never deserialize data from an untrusted source and never round-trip serialized data to systems not under your control.

Vedere ancheSee also