Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe SerializationInfo

Memorizza tutti i dati necessari per serializzare o deserializzare un oggetto. Questa classe non può essere ereditata.

System.Object
  System.Runtime.Serialization.SerializationInfo

Spazio dei nomi:  System.Runtime.Serialization
Assembly:  mscorlib (in mscorlib.dll)

[ComVisibleAttribute(true)]
public sealed class SerializationInfo

Il tipo SerializationInfo espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSerializationInfo(Type, IFormatterConverter)Crea una nuova istanza della classe SerializationInfo.
Metodo pubblicoSerializationInfo(Type, IFormatterConverter, Boolean)Inizializza una nuova istanza della classe SerializationInfo.
In alto

  NomeDescrizione
Proprietà pubblicaAssemblyNameOttiene o imposta il nome dell'assembly del tipo da serializzare soltanto durante la serializzazione.
Proprietà pubblicaFullTypeNameOttiene o imposta il nome completo del Type da serializzare.
Proprietà pubblicaIsAssemblyNameSetExplicitOttiene se il nome dell'assembly è stato impostato in modo esplicito.
Proprietà pubblicaIsFullTypeNameSetExplicitOttiene se il nome del tipo completo è stato impostato in modo esplicito.
Proprietà pubblicaMemberCountOttiene il numero di membri aggiunti all'archivio SerializationInfo.
Proprietà pubblicaObjectTypeRestituisce il tipo dell'oggetto da serializzare.
In alto

  NomeDescrizione
Metodo pubblicoAddValue(String, Boolean)Aggiunge un valore booleano nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Byte)Aggiunge un intero senza segno a 8 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Char)Aggiunge un valore di carattere Unicode nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, DateTime)Aggiunge un valore DateTime nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Decimal)Aggiunge un valore decimale nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Double)Aggiunge un valore in virgola mobile e precisione doppia nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Int16)Aggiunge un intero con segno a 16 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Int32)Aggiunge un intero con segno a 32 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Int64)Aggiunge un intero con segno a 64 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Object)Aggiunge l'oggetto specificato nell'archivio SerializationInfo, in cui è associato a un nome specificato.
Metodo pubblicoAddValue(String, SByte)Aggiunge un intero con segno a 8 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Single)Aggiunge un valore in virgola mobile e precisione singola nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, UInt16)Aggiunge un intero senza segno a 16 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, UInt32)Aggiunge un intero senza segno a 32 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, UInt64)Aggiunge un intero senza segno a 64 bit nell'archivio SerializationInfo.
Metodo pubblicoAddValue(String, Object, Type)Aggiunge un valore nell'archivio SerializationInfo, dove l'oggetto value è associato all'oggetto name ed è serializzato come type di Type.
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo pubblicoGetBooleanRecupera un valore booleano dall'archivio SerializationInfo.
Metodo pubblicoGetByteRecupera un intero senza segno a 8 bit dall'archivio SerializationInfo.
Metodo pubblicoGetCharRecupera un carattere Unicode dall'archivio SerializationInfo.
Metodo pubblicoGetDateTimeRecupera un valore DateTime dall'archivio SerializationInfo.
Metodo pubblicoGetDecimalRecupera un valore decimale dall'archivio SerializationInfo.
Metodo pubblicoGetDoubleRestituisce un valore in virgola mobile e precisione doppia dall'archivio SerializationInfo.
Metodo pubblicoGetEnumeratorRestituisce un oggetto SerializationInfoEnumerator utilizzato per l'iterazione tramite coppie nome/valore nell'archivio SerializationInfo.
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetInt16Recupera un intero con segno a 16 bit dall'archivio SerializationInfo.
Metodo pubblicoGetInt32Recupera un intero con segno a 32 bit dall'archivio SerializationInfo.
Metodo pubblicoGetInt64Recupera un intero con segno a 64 bit dall'archivio SerializationInfo.
Metodo pubblicoGetSByteRecupera un intero con segno a 8 bit dall'archivio SerializationInfo.
Metodo pubblicoGetSingleRestituisce un valore in virgola mobile e precisione singola dall'archivio SerializationInfo.
Metodo pubblicoGetStringRecupera un valore String dall'archivio SerializationInfo.
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoGetUInt16Recupera un intero senza segno a 16 bit dall'archivio SerializationInfo.
Metodo pubblicoGetUInt32Recupera un intero senza segno a 32 bit dall'archivio SerializationInfo.
Metodo pubblicoGetUInt64Recupera un intero senza segno a 64 bit dall'archivio SerializationInfo.
Metodo pubblicoGetValueRecupera un valore dall'archivio SerializationInfo.
Metodo pubblicoSetTypeImposta il Type dell'oggetto da serializzare.
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

Questa classe viene utilizzata da oggetti con un comportamento di serializzazione personalizzato. Il metodo GetObjectData eseguito sull'oggetto ISerializable o ISerializationSurrogate popola l'archivio SerializationInfo con il nome, il tipo e il valore di ogni informazione da serializzare. Nel corso della deserializzazione queste informazioni possono essere estratte dalla funzione appropriata.

Gli oggetti vengono aggiunti all'archivio SerializationInfo durante la serializzazione utilizzando i metodi AddValue e vengono estratti dall'archivio SerializationInfo durante la deserializzazione utilizzando i metodi GetValue.

Per ulteriori informazioni sulla serializzazione personalizzata, vedere Serializzazione personalizzata.

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo di SerializationInfo per la serializzazione e la deserializzazione personalizzata di diversi valori.


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

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 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 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft