Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
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 ref class SerializationInfo sealed

El tipo SerializationInfo expone los siguientes miembros.

  NombreDescripción
Método públicoSerializationInfo(Type, IFormatterConverter)Crea una nueva instancia de la clase SerializationInfo.
Método públicoSerializationInfo(Type, IFormatterConverter, Boolean)Inicializa 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úblicaIsAssemblyNameSetExplicitObtiene si el nombre del ensamblado se ha establecido explícitamente.
Propiedad públicaIsFullTypeNameSetExplicitObtiene si el nombre del tipo completo se ha establecido explícitamente.
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 especificado es igual al objeto actual. (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úblicoGetHashCode Sirve como una función hash para un tipo en particular. (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 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 Serialización personalizada.

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


using namespace System;
using namespace System::IO;
using namespace System::Collections;
using namespace System::Runtime::Serialization::Formatters::Binary;
using namespace System::Runtime::Serialization;

ref class SingletonSerializationHelper;

// There should be only one instance of this type per AppDomain.

[Serializable]
public ref class Singleton sealed: public ISerializable
{
private:

   // This is the one instance of this type.
   static Singleton^ theOneObject = gcnew Singleton;

public:

   // Here are the instance fields.
   String^ someString;
   Int32 someNumber;

private:

   // Private constructor allowing this type to construct the singleton.
   Singleton()
   {

      // Do whatever is necessary to initialize the singleton.
      someString = "This is a String* field";
      someNumber = 123;
   }

public:

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

   // A method called when serializing a Singleton.
   [System::Security::Permissions::SecurityPermissionAttribute
   (System::Security::Permissions::SecurityAction::LinkDemand, 
   Flags=System::Security::Permissions::SecurityPermissionFlag::SerializationFormatter)]
   virtual void GetObjectData( SerializationInfo^ info, StreamingContext context )
   {
      // Instead of serializing this Object*, we will  
      // serialize a SingletonSerializationHelp instead.
      info->SetType( SingletonSerializationHelper::typeid );

      // No other values need to be added.
   }

   // NOTE: ISerializable*'s special constructor is NOT necessary 
   // because it's never called
};

[Serializable]
private ref class SingletonSerializationHelper sealed: public IObjectReference
{
public:

   // This Object* has no fields (although it could).
   // GetRealObject is called after this Object* is deserialized
   virtual Object^ GetRealObject( StreamingContext context )
   {
      // When deserialiing this Object*, return a reference to 
      // the singleton Object* instead.
      return Singleton::GetSingleton();
   }
};

[STAThread]
int main()
{
   FileStream^ fs = gcnew FileStream( "DataFile.dat",FileMode::Create );
   try
   {
      // Construct a BinaryFormatter and use it 
      // to serialize the data to the stream.
      BinaryFormatter^ formatter = gcnew BinaryFormatter;

      // Create an array with multiple elements refering to 
      // the one Singleton Object*.
      array<Singleton^>^a1 = {Singleton::GetSingleton(),Singleton::GetSingleton()};

      // This displays S"True".
      Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a1[ 0 ] == a1[ 1 ]) );

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

      // Deserialize the array elements.
      fs->Position = 0;
      array<Singleton^>^a2 = (array<Singleton^>^)formatter->Deserialize( fs );

      // This displays S"True".
      Console::WriteLine( "Do both array elements refer to the same Object? {0}", (a2[ 0 ] == a2[ 1 ]) );

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

   return 0;
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.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