Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

SerializationInfo-Klasse

Enthält sämtliche zum Serialisieren bzw. Deserialisieren eines Objekts benötigten Daten. Diese Klasse kann nicht vererbt werden.

System.Object
  System.Runtime.Serialization.SerializationInfo

Namespace:  System.Runtime.Serialization
Assembly:  mscorlib (in mscorlib.dll)
[ComVisibleAttribute(true)]
public sealed class SerializationInfo

Der SerializationInfo-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeSerializationInfoErstellt eine neue Instanz der SerializationInfo-Klasse.
Zum Seitenanfang
  NameBeschreibung
Öffentliche EigenschaftAssemblyNameRuft den Assemblynamen des zu serialisierenden Typs nur während der Serialisierung ab oder legt diesen fest.
Öffentliche EigenschaftFullTypeNameRuft den vollständigen Namen des zu serialisierenden Type ab oder legt diesen fest.
Öffentliche EigenschaftIsAssemblyNameSetExplicitGibt TRUE zurück, wenn der Assemblyname explizit festgelegt wurde.
Öffentliche EigenschaftIsFullTypeNameSetExplicitGibt TRUE zurück, wenn der vollständige Typname explizit festgelegt wurde.
Öffentliche EigenschaftMemberCountRuft die Anzahl der Member ab, die dem SerializationInfo-Speicher hinzugefügt wurden.
Öffentliche EigenschaftObjectTypeGibt den Typ des Objekts zurück, der serialisiert werden soll.
Zum Seitenanfang
  NameBeschreibung
Öffentliche MethodeAddValue(String, Boolean)Fügt dem SerializationInfo-Speicher einen booleschen Wert hinzu.
Öffentliche MethodeAddValue(String, Byte)Fügt dem SerializationInfo-Speicher den Wert einer 8-Bit-Ganzzahl ohne hinzu.
Öffentliche MethodeAddValue(String, Char)Fügt dem SerializationInfo-Speicher den Wert eines Unicode-Zeichens hinzu.
Öffentliche MethodeAddValue(String, DateTime)Fügt dem SerializationInfo-Speicher einen DateTime-Wert hinzu.
Öffentliche MethodeAddValue(String, Decimal)Fügt dem SerializationInfo-Speicher einen Decimal-Wert hinzu.
Öffentliche MethodeAddValue(String, Double)Fügt dem SerializationInfo-Speicher einen Gleitkommawert mit doppelter Genauigkeit hinzu.
Öffentliche MethodeAddValue(String, Int16)Fügt dem SerializationInfo-Speicher den Wert einer 16-Bit-Ganzzahl mit Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, Int32)Fügt dem SerializationInfo-Speicher den Wert einer 32-Bit-Ganzzahl mit Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, Int64)Fügt dem SerializationInfo-Speicher den Wert einer 64-Bit-Ganzzahl mit Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, Object)Fügt dem SerializationInfo-Speicher das angegebene Objekt hinzu, wo diesem ein angegebener Name zugeordnet wird.
Öffentliche MethodeAddValue(String, SByte)Fügt dem SerializationInfo-Speicher den Wert einer 8-Bit-Ganzzahl mit Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, Single)Fügt dem SerializationInfo-Speicher einen Gleitkommawert mit einfacher Genauigkeit hinzu.
Öffentliche MethodeAddValue(String, UInt16)Fügt dem SerializationInfo-Speicher den Wert einer 16-Bit-Ganzzahl ohne Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, UInt32)Fügt dem SerializationInfo-Speicher den Wert einer 32-Bit-Ganzzahl ohne Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, UInt64)Fügt dem SerializationInfo-Speicher den Wert einer 64-Bit-Ganzzahl ohne Vorzeichen hinzu.
Öffentliche MethodeAddValue(String, Object, Type)Fügt dem SerializationInfo-Speicher einen Wert hinzu, wobei der value dem name zugeordnet und als Typetype serialisiert wird.
Öffentliche MethodeEquals(Object) Bestimmt, ob das übergegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Von Object geerbt.)
Öffentliche MethodeGetBooleanRuft einen Boolean-Wert aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetByteRuft den Wert einer 8-Bit-Ganzzahl ohne Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetCharRuft den Wert eines Unicode-Zeichens aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetDateTimeRuft einen DateTime-Wert aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetDecimalRuft einen Decimal-Wert aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetDoubleRuft einen Gleitkommawert mit doppelter Genauigkeit aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetEnumeratorGibt einen SerializationInfoEnumerator zurück, mit dem die Name-Wert-Paare im SerializationInfo-Speicher durchlaufen werden.
Öffentliche MethodeGetHashCodeFungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche MethodeGetInt16Ruft den Wert einer 16-Bit-Ganzzahl mit Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetInt32Ruft den Wert einer 32-Bit-Ganzzahl mit Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetInt64Ruft den Wert einer 64-Bit-Ganzzahl mit Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetSByteRuft den Wert einer 8-Bit-Ganzzahl mit Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetSingleRuft einen Gleitkommawert mit einfacher Genauigkeit aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetStringRuft einen String-Wert aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeGetUInt16Ruft den Wert einer 16-Bit-Ganzzahl ohne Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetUInt32Ruft den Wert einer 32-Bit-Ganzzahl ohne Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetUInt64Ruft den Wert einer 64-Bit-Ganzzahl ohne Vorzeichen aus dem SerializationInfo-Speicher ab.
Öffentliche MethodeGetValueRuft einen Wert aus dem SerializationInfo-Speicher ab.
Geschützte MethodeMemberwiseCloneErstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche MethodeSetTypeLegt den Type des zu serialisierenden Objekts fest.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Zum Seitenanfang

Diese Klasse wird von Objekten mit benutzerdefiniertem Serialisierungsverhalten verwendet. Die GetObjectData-Methode für ISerializable oder ISerializationSurrogate füllt den SerializationInfo-Speicher mit dem Namen, dem Typ und dem Wert aller zu serialisierenden Informationen. Während der Deserialisierung können diese Informationen von der entsprechenden Funktion extrahiert werden.

Objekte werden während der Serialisierung mithilfe der AddValue-Methoden dem SerializationInfo-Speicher hinzugefügt und während der Deserialisierung mithilfe der GetValue-Methoden aus der SerializationInfo-Speicher extrahiert.

Weitere Informationen über das Anpassen der Serialisierung finden Sie unter [<topic://cpconCustomSerialization>].

Im folgenden folgende Codebeispiel werden die SerializationInfo für die benutzerdefinierte Serialisierung und Deserialisierung verschiedener Werte veranschaulicht.


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

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)

Community-Beiträge

HINZUFÜGEN
© 2013 Microsoft. Alle Rechte vorbehalten.