Exportar (0) Imprimir
Expandir todo
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

SerializationInfo (Clase)

Almacena todos los datos necesarios para serializar o deserializar un objeto. Esta clase no puede heredarse.

System.Object
  System.Runtime.Serialization.SerializationInfo

Espacio de nombres:  System.Runtime.Serialization
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

El tipo SerializationInfo expone los siguientes miembros.

  NombreDescripción
Método públicoSerializationInfoCrea una nueva instancia de la clase SerializationInfo.
Arriba

  NombreDescripción
Propiedad públicaAssemblyNameObtiene o establece el nombre de ensamblado del tipo que se va a serializar sólo durante la serialización.
Propiedad públicaFullTypeNameObtiene o establece el nombre completo del Type que se va a serializar.
Propiedad públicaIsAssemblyNameSetExplicitDevuelve verdadero si explícitamente se ha establecido el nombre del ensamblado.
Propiedad públicaIsFullTypeNameSetExplicitDevuelve verdadero si se ha establecido explícitamente el nombre de tipo completo.
Propiedad públicaMemberCountObtiene el número de miembros que se han agregado al almacén SerializationInfo.
Propiedad públicaObjectTypeDevuelve el tipo del objeto que se va a serializar.
Arriba

  NombreDescripción
Método públicoAddValue(String, Boolean)Agrega un valor booleano al almacén SerializationInfo.
Método públicoAddValue(String, Byte)Agrega un valor entero de 8 bits sin signo al almacén SerializationInfo.
Método públicoAddValue(String, Char)Agrega un valor de carácter Unicode al almacén SerializationInfo.
Método públicoAddValue(String, DateTime)Agrega un valor DateTime al almacén SerializationInfo.
Método públicoAddValue(String, Decimal)Agrega un valor decimal al almacén SerializationInfo.
Método públicoAddValue(String, Double)Agrega un valor de punto flotante de precisión doble al almacén SerializationInfo.
Método públicoAddValue(String, Int16)Agrega un valor entero de 16 bits con signo al almacén SerializationInfo.
Método públicoAddValue(String, Int32)Agrega un valor entero de 32 bits con signo al almacén SerializationInfo.
Método públicoAddValue(String, Int64)Agrega un valor entero de 64 bits con signo al almacén SerializationInfo.
Método públicoAddValue(String, Object)Agrega el objeto especificado al almacén SerializationInfo, donde se le asocia un nombre especificado.
Método públicoAddValue(String, SByte)Agrega un valor entero de 8 bits con signo al almacén SerializationInfo.
Método públicoAddValue(String, Single)Agrega un valor de punto flotante de precisión sencilla al almacén SerializationInfo.
Método públicoAddValue(String, UInt16)Agrega un valor entero de 16 bits sin signo al almacén SerializationInfo.
Método públicoAddValue(String, UInt32)Agrega un valor entero de 32 bits sin signo al almacén SerializationInfo.
Método públicoAddValue(String, UInt64)Agrega un valor entero de 64 bits sin signo al almacén SerializationInfo.
Método públicoAddValue(String, Object, Type)Agrega un valor al almacén SerializationInfo, donde value está asociado a name y se serializa con typeType.
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegidoFinalize 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úblicoGetBooleanRecupera un valor booleano del almacén SerializationInfo.
Método públicoGetByteRecupera un valor entero de 8 bits sin signo del almacén SerializationInfo.
Método públicoGetCharRecupera un valor de carácter Unicode del almacén SerializationInfo.
Método públicoGetDateTimeRecupera un valor DateTime del almacén SerializationInfo.
Método públicoGetDecimalRecupera un valor decimal del almacén SerializationInfo.
Método públicoGetDoubleRecupera un valor de punto flotante de precisión doble del almacén SerializationInfo.
Método públicoGetEnumeratorDevuelve un objeto SerializationInfoEnumerator que se utiliza para recorrer en iteración los pares de nombre y valor del almacén SerializationInfo.
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetInt16Recupera un valor entero de 16 bits con signo del almacén SerializationInfo.
Método públicoGetInt32Recupera un valor entero de 32 bits con signo del almacén SerializationInfo.
Método públicoGetInt64Recupera un valor entero de 64 bits con signo del almacén SerializationInfo.
Método públicoGetSByteRecupera un valor entero de 8 bits con signo del almacén SerializationInfo.
Método públicoGetSingleRecupera un valor de punto flotante de precisión sencilla del almacén SerializationInfo.
Método públicoGetStringRecupera un valor String del almacén SerializationInfo.
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoGetUInt16Recupera un valor entero de 16 bits sin signo del almacén SerializationInfo.
Método públicoGetUInt32Recupera un valor entero de 32 bits sin signo del almacén SerializationInfo.
Método públicoGetUInt64Recupera un valor entero de 64 bits sin signo del almacén SerializationInfo.
Método públicoGetValueRecupera un valor del almacén SerializationInfo.
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoSetTypeEstablece el Type del objeto que se va a serializar.
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

Los objetos con un comportamiento de serialización personalizado utilizan esta clase. Cuando se llama al método GetObjectData en ISerializable o ISerializationSurrogate, rellena el almacén SerializationInfo con el nombre, tipo y valor de cada dato que desea serializar. Durante la deserialización, la función correspondiente extrae esta información.

Los objetos se agregan al almacén SerializationInfo en el momento de la serialización mediante los métodos AddValue y se extraen de SerializationInfo en el momento de la deserialización mediante los métodos GetValue.

Para obtener más información sobre la serialización personalizada, vea [<topic://cpconCustomSerialization>].

En el siguiente ejemplo de código, se muestra SerializationInfo para la serialización y deserialización personalizadas de varios valores.


using System;
using System.Web;
using System.IO;
using System.Collections;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Security.Permissions;


// There should be only one instance of this type per AppDomain.
[Serializable]
public sealed class Singleton : ISerializable 
{
    // This is the one instance of this type.
    private static readonly Singleton theOneObject = new Singleton();

    // Here are the instance fields.
    private string someString_value;
    private Int32 someNumber_value;

   public string SomeString
   {
       get{return someString_value;}
       set{someString_value = value;}
   }

   public Int32 SomeNumber
   {
       get{return someNumber_value;}
       set{someNumber_value = value;}
   }

    // Private constructor allowing this type to construct the Singleton.
    private Singleton() 
    { 
        // Do whatever is necessary to initialize the Singleton.
        someString_value = "This is a string field";
        someNumber_value = 123;
    }

    // A method returning a reference to the Singleton.
    public static Singleton GetSingleton() 
    { 
        return theOneObject; 
    }

    // A method called when serializing a Singleton.
    [SecurityPermissionAttribute(SecurityAction.LinkDemand, 
    Flags=SecurityPermissionFlag.SerializationFormatter)]
    void ISerializable.GetObjectData(
        SerializationInfo info, StreamingContext context) 
    {
        // Instead of serializing this object, 
        // serialize a SingletonSerializationHelp instead.
        info.SetType(typeof(SingletonSerializationHelper));
        // No other values need to be added.
    }

    // Note: ISerializable's special constructor is not necessary 
    // because it is never called.
}


[Serializable]
internal sealed class SingletonSerializationHelper : IObjectReference 
{
    // This object has no fields (although it could).

    // GetRealObject is called after this object is deserialized.
    public Object GetRealObject(StreamingContext context) 
    {
        // When deserialiing this object, return a reference to 
        // the Singleton object instead.
        return Singleton.GetSingleton();
    }
}


class App 
{
    [STAThread]
    static void Main() 
    {
        FileStream fs = new FileStream("DataFile.dat", FileMode.Create);

        try 
        {
            // Construct a BinaryFormatter and use it 
            // to serialize the data to the stream.
            BinaryFormatter formatter = new BinaryFormatter();

            // Create an array with multiple elements refering to 
            // the one Singleton object.
            Singleton[] a1 = { Singleton.GetSingleton(), Singleton.GetSingleton() };

            // This displays "True".
            Console.WriteLine(
                "Do both array elements refer to the same object? " + 
                (a1[0] == a1[1]));     

            // Serialize the array elements.
            formatter.Serialize(fs, a1);

            // Deserialize the array elements.
            fs.Position = 0;
            Singleton[] a2 = (Singleton[]) formatter.Deserialize(fs);

            // This displays "True".
            Console.WriteLine("Do both array elements refer to the same object? " 
                + (a2[0] == a2[1])); 

            // This displays "True".
            Console.WriteLine("Do all array elements refer to the same object? " 
                + (a1[0] == a2[0]));
        }   
        catch (SerializationException e) 
        {
            Console.WriteLine("Failed to serialize. Reason: " + e.Message);
            throw;
        }
        finally 
        {
            fs.Close();
        }
    }
}


.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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft