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
|
SerializableAttribute (Clase)
Indica que una clase puede serializarse. Esta clase no puede heredarse.
Ensamblado: mscorlib (en mscorlib.dll)
El tipo SerializableAttribute expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
SerializableAttribute | Inicializa una nueva instancia de la clase SerializableAttribute. |
| Nombre | Descripción | |
|---|---|---|
|
Equals | Infraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute). |
|
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). |
|
GetHashCode | Devuelve el código hash de esta instancia. (Se hereda de Attribute). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
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). |
|
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). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
| Nombre | Descripción | |
|---|---|---|
|
_Attribute.GetIDsOfNames | Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute). |
|
_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). |
|
_Attribute.GetTypeInfoCount | Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute). |
|
_Attribute.Invoke | Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute). |
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); } }
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.