Compartir a través de


Serialización selectiva

Una clase a menudo contiene campos que no se deben serializar. Por ejemplo, suponga que una clase almacena un identificador de subproceso en una variable miembro. Cuando la clase se deserializa, el subproceso cuyo identificador se ha almacenado al serializar la clase no debería seguir ejecutándose, por lo que serializar este valor no tiene sentido. Puede impedir que las variables miembro se serialicen; para ello, ha de marcarlas con el atributo NonSerialized como se muestra a continuación.

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

Si es posible, convierta los objetos que puedan contener datos relativos a la seguridad en objetos no serializables. Si los objetos deben serializarse, aplique el atributo NonSerialized a campos específicos que almacenen datos confidenciales. Si no excluye estos campos de la serialización, tenga en cuenta que los datos que almacenan dichos campos estarán expuestos a cualquier código que tenga permiso de serialización. Para obtener más información sobre la forma de escribir código de serialización seguro, vea Seguridad y serialización.

Vea también

Conceptos

Security and Serialization

Otros recursos

Serialización binaria
Objetos remotos
Serialización XML y SOAP