Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe SerializationInfo

Armazena todos os dados necessários para serializar ou desserializar um objeto. Esta classe não pode ser herdada.

System.Object
  System.Runtime.Serialization.SerializationInfo

Namespace:  System.Runtime.Serialization
Assembly:  mscorlib (em mscorlib.dll)

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

O tipo SerializationInfo expõe os membros a seguir.

  NomeDescrição
Método públicoSerializationInfo(Type, IFormatterConverter)Cria uma nova instância do SerializationInfo classe.
Método públicoSerializationInfo(Type, IFormatterConverter, Boolean)Inicializa uma nova instância da classe SerializationInfo.
Superior

  NomeDescrição
Propriedade públicaAssemblyNameObtém ou define o nome do assembly do tipo para serializar durante a serialização somente.
Propriedade públicaFullTypeNameObtém ou define o nome completo do Type para serializar.
Propriedade públicaIsAssemblyNameSetExplicitObtém se o nome do assembly foi explicitamente definido.
Propriedade públicaIsFullTypeNameSetExplicitObtém se o nome de tipo completo foi explicitamente definido.
Propriedade públicaMemberCountObtém o número de membros que foram adicionados para o SerializationInfo armazenar.
Propriedade públicaObjectTypeRetorna o tipo do objeto a ser serializado.
Superior

  NomeDescrição
Método públicoAddValue(String, Boolean)Adiciona um valor booleano para o SerializationInfo armazenar.
Método públicoAddValue(String, Byte)Adiciona um valor inteiro não assinado de 8 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Char)Adiciona um valor de caractere Unicode para o SerializationInfo armazenar.
Método públicoAddValue(String, DateTime)Adiciona um DateTime valor para o SerializationInfo armazenar.
Método públicoAddValue(String, Decimal)Adiciona um valor decimal para o SerializationInfo armazenar.
Método públicoAddValue(String, Double)Adiciona um valor de ponto flutuante de precisão dupla para a SerializationInfo armazenar.
Método públicoAddValue(String, Int16)Adiciona um valor inteiro assinado de 16 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Int32)Adiciona um valor inteiro assinado de 32 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Int64)Adiciona um valor inteiro assinado de 64 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Object)Adiciona o objeto especificado para o SerializationInfo store, onde é associado com um nome especificado.
Método públicoAddValue(String, SByte)Adiciona um valor inteiro assinado de 8 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Single)Adiciona um valor de ponto flutuante de precisão simples para o SerializationInfo armazenar.
Método públicoAddValue(String, UInt16)Adiciona um valor inteiro não assinado de 16 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, UInt32)Adiciona um valor inteiro não assinado de 32 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, UInt64)Adiciona um valor inteiro não assinado de 64 bits para o SerializationInfo armazenar.
Método públicoAddValue(String, Object, Type)Adiciona um valor para o SerializationInfo armazenar, onde value associados com name e serializada como sendo de Typetype.
Método públicoEquals(Object) Verifica se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método públicoGetBooleanRecupera um valor Boolean a partir de SerializationInfo armazenar.
Método públicoGetByteRecupera um valor inteiro não assinado de 8 bits de SerializationInfo armazenar.
Método públicoGetCharRecupera um valor de caractere Unicode do SerializationInfo armazenar.
Método públicoGetDateTimeRecupera uma DateTime o valor do SerializationInfo armazenar.
Método públicoGetDecimalRecupera um valor decimal do SerializationInfo armazenar.
Método públicoGetDoubleRecupera um valor de ponto flutuante de precisão dupla do SerializationInfo armazenar.
Método públicoGetEnumeratorRetorna um SerializationInfoEnumerator usado para iterar os pares de nome-valor de SerializationInfo armazenar.
Método públicoGetHashCodeServe como a função de hash padrão. (Herdado de Object.)
Método públicoGetInt16Recupera um valor inteiro assinado de 16 bits de SerializationInfo armazenar.
Método públicoGetInt32Recupera um valor inteiro assinado de 32 bits de SerializationInfo armazenar.
Método públicoGetInt64Recupera um valor inteiro assinado de 64 bits do SerializationInfo armazenar.
Método públicoGetSByteRecupera um valor inteiro assinado de 8 bits do SerializationInfo armazenar.
Método públicoGetSingleRecupera um valor de ponto flutuante de precisão simples do SerializationInfo armazenar.
Método públicoGetStringRecupera uma String o valor do SerializationInfo armazenar.
Método públicoGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoGetUInt16Recupera um valor inteiro não assinado de 16 bits de SerializationInfo armazenar.
Método públicoGetUInt32Recupera um valor inteiro não assinado de 32 bits de SerializationInfo armazenar.
Método públicoGetUInt64Recupera um valor inteiro não assinado de 64 bits do SerializationInfo armazenar.
Método públicoGetValueRecupera um valor de SerializationInfo armazenar.
Método públicoSetTypeConjuntos de Type do objeto para serializar.
Método públicoToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Superior

Essa classe é usada pelos objetos com o comportamento de serialização personalizada. O GetObjectData método em um ISerializable ou ISerializationSurrogate preenche o SerializationInfo armazenar com o nome, tipo e valor de cada informação deseja serializar. Durante a desserialização, a função apropriada pode extrair essas informações.

Objetos são adicionados para o SerializationInfo armazenar em tempo de serialização usando o AddValue métodos e extraídos do SerializationInfo armazenar na desserialização usando o GetValue métodos.

Para obter mais informações sobre como personalizar a serialização, consulte Serialização personalizada.

O exemplo de código a seguir demonstra a SerializationInfo personalizado de serialização e desserialização de vários valores.


using System;
using System.Text;
using System.IO;
// Add references to Soap and Binary formatters.
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization.Formatters.Soap ;
using System.Runtime.Serialization;


[Serializable]
public class MyItemType : ISerializable
{
    public MyItemType()
    {
        // Empty constructor required to compile.
    }

    // The value to serialize.
    private string myProperty_value;

    public string MyProperty
    {
        get { return myProperty_value; }
        set { myProperty_value = value; }
    }

    // Implement this method to serialize data. The method is called 
    // on serialization.
    public void GetObjectData(SerializationInfo info, StreamingContext context)
    {
        // Use the AddValue method to specify serialized values.
        info.AddValue("props", myProperty_value, typeof(string));

    }

    // The special constructor is used to deserialize values.
    public MyItemType(SerializationInfo info, StreamingContext context)
    {
        // Reset the property value using the GetValue method.
        myProperty_value = (string) info.GetValue("props", typeof(string));
    }
}

// This is a console application. 
public static class Test
{
    static void Main()
    {
        // This is the name of the file holding the data. You can use any file extension you like.
        string fileName = "dataStuff.myData";

        // Use a BinaryFormatter or SoapFormatter.
        IFormatter formatter = new BinaryFormatter();
        //IFormatter formatter = new SoapFormatter();

        Test.SerializeItem(fileName, formatter); // Serialize an instance of the class.
        Test.DeserializeItem(fileName, formatter); // Deserialize the instance.
        Console.WriteLine("Done");
        Console.ReadLine();
    }

    public static void SerializeItem(string fileName, IFormatter formatter)
    {
        // Create an instance of the type and serialize it.
        MyItemType t = new MyItemType();
        t.MyProperty = "Hello World";

        FileStream s = new FileStream(fileName , FileMode.Create);
        formatter.Serialize(s, t);            
        s.Close();
    }


    public static void DeserializeItem(string fileName, IFormatter formatter)
    {
        FileStream s = new FileStream(fileName, FileMode.Open);
        MyItemType t = (MyItemType)formatter.Deserialize(s);
        Console.WriteLine(t.MyProperty);            
    }       
}


.NET Framework

Com suporte em: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Com suporte em: 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 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft