Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

SerializableAttribute (Clase)

Indica que una clase puede serializarse. Esta clase no puede heredarse.

System.Object
  System.Attribute
    System.SerializableAttribute

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Struct|AttributeTargets.Enum|AttributeTargets.Delegate, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class SerializableAttribute : Attribute

El tipo SerializableAttribute expone los siguientes miembros.

  Nombre Descripción
Método público Compatible con XNA Framework SerializableAttribute Inicializa una nueva instancia de la clase SerializableAttribute.
Arriba
  Nombre Descripción
Propiedad pública TypeId Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).
Arriba
  Nombre Descripción
Método público Compatible con XNA Framework Equals Infraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método protegido Compatible con XNA Framework Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público Compatible con XNA Framework GetHashCode Devuelve el código hash de esta instancia. (Se hereda de Attribute).
Método público Compatible con XNA Framework GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público IsDefaultAttribute Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método público Compatible con XNA Framework Match Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método protegido Compatible con XNA Framework MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público Compatible con XNA Framework ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba
  Nombre Descripción
Implementación explícita de interfaces Método privado _Attribute.GetIDsOfNames Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfaces Método privado _Attribute.GetTypeInfo Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfaces Método privado _Attribute.GetTypeInfoCount Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfaces Método privado _Attribute.Invoke Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Aplique el atributo SerializableAttribute a un tipo para indicar que las instancias de este tipo pueden serializarse. Common Language Runtime produce SerializationException si no se ha aplicado el atributo SerializableAttribute a alguno de los tipos del gráfico de objetos que se va a serializar.

Aplique el atributo SerializableAttribute aunque la clase implemente también la interfaz ISerializable para controlar el proceso de serialización.

Todos los campos públicos y privados de un tipo marcados por el atributo SerializableAttribute se serializan de forma predeterminada, a menos que el tipo implemente la interfaz ISerializable para reemplazar el proceso de serialización. El proceso de serialización predeterminado excluye los campos marcados con el atributo NonSerializedAttribute. Si un campo de un tipo serializable contiene un puntero, un identificador o alguna otra estructura de datos que sea específica de un entorno determinado y que no se pueda reconstituirse correctamente en un entorno diferente, es posible que desee aplicar el atributo NonSerializedAttribute a dicho campo.

Para obtener más información sobre cómo utilizar atributos, vea Extender metadatos mediante atributos. Para obtener más información sobre la serialización, vea System.Runtime.Serialization.

En el siguiente ejemplo se muestra la serialización de un objeto marcado con el atributo SerializableAttribute. Para utilizar BinaryFormatter en lugar de SoapFormatter, quite la marca de comentario de las líneas pertinentes.


using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Soap;
//using System.Runtime.Serialization.Formatters.Binary;

public class Test {
   public static void Main()  {

      //Creates a new TestSimpleObject object.
      TestSimpleObject obj = new TestSimpleObject();

      Console.WriteLine("Before serialization the object contains: ");
      obj.Print();

      //Opens a file and serializes the object into it in binary format.
      Stream stream = File.Open("data.xml", FileMode.Create);
      SoapFormatter formatter = new SoapFormatter();

      //BinaryFormatter formatter = new BinaryFormatter();

      formatter.Serialize(stream, obj);
      stream.Close();

      //Empties obj.
      obj = null;

      //Opens file "data.xml" and deserializes the object from it.
      stream = File.Open("data.xml", FileMode.Open);
      formatter = new SoapFormatter();

      //formatter = new BinaryFormatter();

      obj = (TestSimpleObject)formatter.Deserialize(stream);
      stream.Close();

      Console.WriteLine("");
      Console.WriteLine("After deserialization the object contains: ");
      obj.Print();
   }
}


// A test object that needs to be serialized.
[Serializable()]		
public class TestSimpleObject  {

    public int member1;
    public string member2;
    public string member3;
    public double member4;

    // A field that is not serialized.
    [NonSerialized()] public string member5; 

    public TestSimpleObject() {

        member1 = 11;
        member2 = "hello";
        member3 = "hello";
        member4 = 3.14159265;
        member5 = "hello world!";
    }


    public void Print() {

        Console.WriteLine("member1 = '{0}'", member1);
        Console.WriteLine("member2 = '{0}'", member2);
        Console.WriteLine("member3 = '{0}'", member3);
        Console.WriteLine("member4 = '{0}'", member4);
        Console.WriteLine("member5 = '{0}'", member5);
    }
}


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar