Compartir a través de


Serialización selectiva

Una clase contiene a menudo campos que no se deberían serializar. Por ejemplo, suponga que una clase almacena un Identificador de subproceso en una variable miembro. Cuando se deserializa la clase, el subproceso almacenó el Id. para cuando se serializara, la clase ya no se podría estar ejecutando; serializar así este valor no tiene sentido. Puede evitar que las variables miembro se serialicen marcándolos con el atributo NonSerialized como sigue.

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

Si es posible, haz que un objeto pueda contener datos seguros no serializables. Si se debe serializar el objeto, aplique el atributo NonSerialized a campos concretos que almacena los datos confidenciales. Si no excluye estos campos de la serialización, sea consciente de que los datos que almacenan se expondrán a cualquier código que tenga el permiso para serializar. Para obtener más información sobre cómo escribir el código de serialización seguro, vea Seguridad y Serialización.

Vea también

Otros recursos

Serialización binaria
Remote Objects
Serialización de SOAP y XML
Security and Serialization