Auf Englisch lesen

Freigeben über


XmlSerializer.Deserialize Methode

Definition

Deserialisiert ein XML-Dokument.

Überlädt

Deserialize(Stream)

Deserialisiert das im angegebenen Stream enthaltene XML-Dokument.

Deserialize(TextReader)

Deserialisiert das im angegebenen TextReader enthaltene XML-Dokument.

Deserialize(XmlSerializationReader)

Deserialisiert das im angegebenen XmlSerializationReader enthaltene XML-Dokument.

Deserialize(XmlReader)

Deserialisiert das im angegebenen XmlReader enthaltene XML-Dokument.

Deserialize(XmlReader, String)

Deserialisiert das im angegebenen XmlReader enthaltene XML-Dokument anhand des angegebenen Codierungsstils.

Deserialize(XmlReader, XmlDeserializationEvents)

Deserialisiert ein im XmlReader enthaltenes XML-Dokument und ermöglicht das Überschreiben der Ereignisse, die während der Deserialisierung eintreten.

Deserialize(XmlReader, String, XmlDeserializationEvents)

Deserialisiert das Objekt mit den im angegebenen XmlReader enthaltenen Daten.

Deserialize(Stream)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das im angegebenen Stream enthaltene XML-Dokument.

C#
public object Deserialize (System.IO.Stream stream);
C#
public object? Deserialize (System.IO.Stream stream);

Parameter

stream
Stream

Der Stream mit dem zu deserialisierenden XML-Dokument.

Gibt zurück

Das Object, das deserialisiert wird.

Beispiele

Im folgenden Beispiel wird ein -Objekt mithilfe eines Stream -Objekts deserialisiert.

C#
using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace="http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace="http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test
{
    public static void Main()
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {
        Console.WriteLine("Reading with Stream");
        // Create an instance of the XmlSerializer.
        XmlSerializer serializer =
        new XmlSerializer(typeof(OrderedItem));

        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        using (Stream reader = new FileStream(filename, FileMode.Open))
        {
            // Call the Deserialize method to restore the object's state.
            i = (OrderedItem)serializer.Deserialize(reader);
        }

        // Write out the properties of the object.
        Console.Write(
        i.ItemName + "\t" +
        i.Description + "\t" +
        i.UnitPrice + "\t" +
        i.Quantity + "\t" +
        i.LineTotal);
    }
}
XML
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Hinweise

Die Deserialisierung ist der Prozess, bei dem ein XML-Dokument gelesen und ein Objekt erstellt wird, das stark in das XML-Schema (XSD) des Dokuments eingegeben ist.

Vor der Deserialisierung muss eine XmlSerializer mit dem Typ des Objekts erstellt werden, das deserialisiert wird.

Verwenden Sie den stream -Parameter, um ein Objekt anzugeben, das von der Stream -Klasse abgeleitet ist, die zum Schreiben in Streams konzipiert ist. Klassen, die von der Stream -Klasse abgeleitet werden, umfassen:

Hinweis

Die XmlSerializer kann Folgendes nicht deserialisieren: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Deserialize(TextReader)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das im angegebenen TextReader enthaltene XML-Dokument.

C#
public object Deserialize (System.IO.TextReader textReader);
C#
public object? Deserialize (System.IO.TextReader textReader);

Parameter

textReader
TextReader

Der TextReader mit dem zu deserialisierenden XML-Dokument.

Gibt zurück

Das Object, das deserialisiert wird.

Ausnahmen

Bei der Deserialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein -Objekt mithilfe eines TextReader -Objekts deserialisiert.

C#
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string ItemName;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public string Description;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal UnitPrice;
    [XmlElement(Namespace = "http://www.cpandl.com")]
    public int Quantity;
    [XmlElement(Namespace = "http://www.cohowinery.com")]
    public decimal LineTotal;
    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}

public class Test
{
   public static void Main()
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {
        Console.WriteLine("Reading with TextReader");

        // Create an instance of the XmlSerializer specifying type.
        XmlSerializer serializer =
        new XmlSerializer(typeof(OrderedItem));

        // Create a TextReader to read the file.
        FileStream fs = new FileStream(filename, FileMode.OpenOrCreate);
        TextReader reader = new StreamReader(fs);

        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        // Use the Deserialize method to restore the object's state.
        i = (OrderedItem) serializer.Deserialize(reader);

        // Write out the properties of the object.
        Console.Write(
            i.ItemName + "\t" +
            i.Description + "\t" +
            i.UnitPrice + "\t" +
            i.Quantity + "\t" +
            i.LineTotal);
    }
}

Hinweise

Die Deserialisierung ist der Prozess, bei dem eine Instanz eines XML-Dokuments gelesen und ein Objekt erstellt wird, das stark in das XML-Schema (XSD) des Dokuments eingegeben ist.

Vor der Deserialisierung muss eine XmlSerializer mit dem Typ des Objekts erstellt werden, das deserialisiert wird.

Klassen, die von erben TextReader , umfassen StringReader und StreamReader. Wenn Sie ein StreamReader zum Deserialisieren eines -Objekts verwenden, müssen Sie die StreamReader mit einem entsprechenden Encodingerstellen. Die im XML-Dokument angegebene Codierung wird ignoriert.

Hinweis

Um die im XML-Dokument angegebene Codierung zu verwenden, verwenden Sie stattdessen die Deserialize -Überladung, die eine XmlReader annimmt. Der XmlReader erkennt und verwendet automatisch die im XML-Dokument angegebene Codierung.

Hinweis

Die XmlSerializer kann Folgendes nicht deserialisieren: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Deserialize(XmlSerializationReader)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das im angegebenen XmlSerializationReader enthaltene XML-Dokument.

C#
protected virtual object Deserialize (System.Xml.Serialization.XmlSerializationReader reader);

Parameter

reader
XmlSerializationReader

Der XmlSerializationReader mit dem zu deserialisierenden XML-Dokument.

Gibt zurück

Das deserialisierte Objekt.

Ausnahmen

Wenn die Methode nicht in einer abgeleiteten Klasse überschrieben wird, werden alle Versuche unternommen, auf diese Methode zuzugreifen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Deserialize(XmlReader)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das im angegebenen XmlReader enthaltene XML-Dokument.

C#
public object Deserialize (System.Xml.XmlReader xmlReader);
C#
public object? Deserialize (System.Xml.XmlReader xmlReader);

Parameter

xmlReader
XmlReader

Der XmlReader mit dem zu deserialisierenden XML-Dokument.

Gibt zurück

Das Object, das deserialisiert wird.

Ausnahmen

Bei der Deserialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.

Beispiele

Im folgenden Beispiel wird ein -Objekt mithilfe von XmlReaderdeserialisiert.

C#
using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

// This is the class that will be deserialized.
public class OrderedItem
{
    public string ItemName;
    public string Description;
    public decimal UnitPrice;
    public int Quantity;
    public decimal LineTotal;

    // A custom method used to calculate price per item.
    public void Calculate()
    {
        LineTotal = UnitPrice * Quantity;
    }
}
public class Test
{
    public static void Main(string[] args)
    {
        Test t = new Test();
        // Read a purchase order.
        t.DeserializeObject("simple.xml");
    }

    private void DeserializeObject(string filename)
    {
        Console.WriteLine("Reading with XmlReader");

        // Create an instance of the XmlSerializer specifying type and namespace.
        XmlSerializer serializer = new
        XmlSerializer(typeof(OrderedItem));

        // A FileStream is needed to read the XML document.
        FileStream fs = new FileStream(filename, FileMode.Open);
        XmlReader reader = XmlReader.Create(fs);

        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        // Use the Deserialize method to restore the object's state.
        i = (OrderedItem)serializer.Deserialize(reader);
        fs.Close();

        // Write out the properties of the object.
        Console.Write(
        i.ItemName + "\t" +
        i.Description + "\t" +
        i.UnitPrice + "\t" +
        i.Quantity + "\t" +
        i.LineTotal);
    }
}
XML
<?xml version="1.0"?>
 <OrderedItem xmlns:inventory="http://www.cpandl.com" xmlns:money="http://www.cohowinery.com">
   <inventory:ItemName>Widget</inventory:ItemName>
   <inventory:Description>Regular Widget</inventory:Description>
   <money:UnitPrice>2.3</money:UnitPrice>
   <inventory:Quantity>10</inventory:Quantity>
   <money:LineTotal>23</money:LineTotal>
 </OrderedItem>

Hinweise

Die Deserialisierung ist der Prozess, bei dem eine Instanz eines XML-Dokuments gelesen und ein Objekt erstellt wird, das stark in das XML-Schema (XSD) des Dokuments eingegeben ist.

Vor der Deserialisierung muss eine XmlSerializer mit dem Typ des Objekts erstellt werden, das deserialisiert wird.

Der XmlReader erkennt und verwendet automatisch die im XML-Dokument angegebene Codierung.

Hinweis

Die XmlSerializer kann Folgendes nicht deserialisieren: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Deserialize(XmlReader, String)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das im angegebenen XmlReader enthaltene XML-Dokument anhand des angegebenen Codierungsstils.

C#
public object? Deserialize (System.Xml.XmlReader xmlReader, string? encodingStyle);
C#
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle);

Parameter

xmlReader
XmlReader

Der XmlReader mit dem zu deserialisierenden XML-Dokument.

encodingStyle
String

Der Codierungsstil des serialisierten XML-Codes.

Gibt zurück

Das deserialisierte Objekt.

Ausnahmen

Bei der Deserialisierung ist ein Fehler aufgetreten. Die ursprüngliche Ausnahme ist mithilfe der InnerException-Eigenschaft verfügbar.

Hinweise

Die Deserialisierung ist der Prozess, bei dem eine Instanz eines XML-Dokuments gelesen und ein Objekt erstellt wird, das stark in das XML-Schema (XSD) des Dokuments eingegeben ist.

Vor der Deserialisierung muss eine XmlSerializer mit dem Typ des Objekts erstellt werden, das deserialisiert wird.

Legen Sie den Parameter für die encodingStyle SOAP-Codierung der Version 1.1 auf "http://schemas.xmlsoap.org/soap/encoding/" fest. Andernfalls legen Sie ihn für die SOAP-Codierung der Version 1.2 auf "http://www.w3.org/2001/12/soap-encoding" fest.

Hinweis Die XmlSerializer kann Folgendes nicht deserialisieren: Arrays von ArrayList und Arrays von List<T>.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Deserialize(XmlReader, XmlDeserializationEvents)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert ein im XmlReader enthaltenes XML-Dokument und ermöglicht das Überschreiben der Ereignisse, die während der Deserialisierung eintreten.

C#
public object? Deserialize (System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);
C#
public object Deserialize (System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);

Parameter

xmlReader
XmlReader

Der XmlReader mit dem zu deserialisierenden Dokument.

events
XmlDeserializationEvents

Eine Instanz der XmlDeserializationEvents-Klasse.

Gibt zurück

Das Object, das deserialisiert wird.

Hinweise

Das Objekt, das deserialisiert wird.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Deserialize(XmlReader, String, XmlDeserializationEvents)

Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs
Quelle:
XmlSerializer.cs

Deserialisiert das Objekt mit den im angegebenen XmlReader enthaltenen Daten.

C#
public object? Deserialize (System.Xml.XmlReader xmlReader, string? encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);
C#
public object Deserialize (System.Xml.XmlReader xmlReader, string encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);

Parameter

xmlReader
XmlReader

Eine Instanz der XmlReader-Klasse zum Lesen des Dokuments.

encodingStyle
String

Die verwendete Codierung.

events
XmlDeserializationEvents

Eine Instanz der XmlDeserializationEvents-Klasse.

Gibt zurück

Das Objekt, das deserialisiert wird.

Hinweise

Diese Methode ist nur für die Deserialisierung unbekannter Header für Webdienstszenarien erforderlich. Mit dieser Methode können Sie die Ereignissynchronisierung in Webdienstmethoden vermeiden.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1