XmlSerializer.Deserialize Methode

Definitie

Een XML-document deserializeert.

Overloads

Name Description
Deserialize(Stream)

Het XML-document dat door de opgegeven Streamis opgenomen, wordt gedeserialiseerd.

Deserialize(TextReader)

Het XML-document dat door de opgegeven TextReaderis opgenomen, wordt gedeserialiseerd.

Deserialize(XmlSerializationReader)

Het XML-document dat door de opgegeven XmlSerializationReaderis opgenomen, wordt gedeserialiseerd.

Deserialize(XmlReader)

Het XML-document dat door de opgegeven XmlReaderis opgenomen, wordt gedeserialiseerd.

Deserialize(XmlReader, String)

Het XML-document dat is opgenomen in de opgegeven XmlReader en coderingsstijl, wordt gedeserialiseerd.

Deserialize(XmlReader, XmlDeserializationEvents)

Hiermee wordt een XML-document dat door de opgegeven is XmlReader opgenomen, gedeserialiseerd en wordt het overschrijven van gebeurtenissen toegestaan die optreden tijdens deserialisatie.

Deserialize(XmlReader, String, XmlDeserializationEvents)

Het object ontserialiseerd met behulp van de gegevens die zijn opgenomen in de opgegeven XmlReader.

Deserialize(Stream)

Het XML-document dat door de opgegeven Streamis opgenomen, wordt gedeserialiseerd.

public:
 System::Object ^ Deserialize(System::IO::Stream ^ stream);
public object Deserialize(System.IO.Stream stream);
member this.Deserialize : System.IO.Stream -> obj
Public Function Deserialize (stream As Stream) As Object

Parameters

stream
Stream

Het Stream xml-document dat moet worden gedeserialiseerd.

Retouren

Het Object gedeserialiseerde.

Voorbeelden

In het volgende voorbeeld wordt een object gedeserialiseerd met behulp van een Stream object.

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);
    }
}
Imports System.IO
Imports System.Xml.Serialization

' This is the class that will be deserialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String

    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    
    'A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class

Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
        
    Private Sub DeserializeObject(ByVal filename As String)
        Console.WriteLine("Reading with Stream")
        ' Create an instance of the XmlSerializer.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))       
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem

        Using reader As New Filestream(filename, FileMode.Open)

            ' Call the Deserialize method to restore the object's state.
            i = CType(serializer.Deserialize(reader), OrderedItem)
        End Using

        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class
<?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>

Opmerkingen

Deserialisatie is het lezen van een XML-document en het samenstellen van een object dat sterk is getypt in het XML-schema (XSD) van het document.

Voordat deserialisatie wordt gedeserialiseerd, moet een XmlSerializer object worden samengesteld met behulp van het type object dat wordt gedeserialiseerd.

Gebruik de stream parameter om een object op te geven dat is afgeleid van de Stream klasse, die is ontworpen om naar streams te schrijven. Klassen die zijn afgeleid van de Stream klasse zijn onder andere:

Note

Het XmlSerializer kan het volgende niet deserialiseren: matrices van ArrayList en matrices van List<T>.

Zie ook

Van toepassing op

Deserialize(TextReader)

Het XML-document dat door de opgegeven TextReaderis opgenomen, wordt gedeserialiseerd.

public:
 System::Object ^ Deserialize(System::IO::TextReader ^ textReader);
public object Deserialize(System.IO.TextReader textReader);
member this.Deserialize : System.IO.TextReader -> obj
Public Function Deserialize (textReader As TextReader) As Object

Parameters

textReader
TextReader

Het TextReader xml-document dat moet worden gedeserialiseerd.

Retouren

Het Object gedeserialiseerde.

Uitzonderingen

Er is een fout opgetreden tijdens de deserialisatie. De oorspronkelijke uitzondering is beschikbaar met behulp van de InnerException eigenschap.

Voorbeelden

In het volgende voorbeeld wordt een object gedeserialiseerd met behulp van een TextReader object.

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);
    }
}
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization

' This is the class that will be deserialized.
Public Class OrderedItem
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public ItemName As String

    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Description As String
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public UnitPrice As Decimal
    
    <XmlElement(Namespace := "http://www.cpandl.com")> _
    Public Quantity As Integer
    
    <XmlElement(Namespace := "http://www.cohowinery.com")> _
    Public LineTotal As Decimal
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class
Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
    
    Private Sub DeserializeObject(filename As String)
        Console.WriteLine("Reading with TextReader")
        
        ' Create an instance of the XmlSerializer specifying type.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        ' Create a TextReader to read the file. 
        Dim fs as New FileStream(filename, FileMode.OpenOrCreate)
        Dim reader As New StreamReader(fs)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state.
        i = CType(serializer.Deserialize(reader), OrderedItem)
        
        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class

Opmerkingen

Deserialisatie is het lezen van een exemplaar van een XML-document en het samenstellen van een object dat sterk is getypt in het XML-schema (XSD) van het document.

Voordat deserialisatie wordt gedeserialiseerd, moet een XmlSerializer object worden samengesteld met behulp van het type object dat wordt gedeserialiseerd.

Klassen die overnemen van TextReader opnemen StringReader en StreamReader. Als u een StreamReader object gebruikt om een object te deserialiseren, moet u het StreamReader met een geschikte Encodingmaken. De codering die is opgegeven door het XML-document, wordt genegeerd.

Note

Als u de codering wilt gebruiken die is opgegeven door het XML-document, gebruikt u de Deserialize overbelasting die een XmlReader in plaats daarvan nodig heeft. De XmlReader code detecteert en gebruikt automatisch de codering die is opgegeven door het XML-document.

Note

Het XmlSerializer kan het volgende niet deserialiseren: matrices van ArrayList en matrices van List<T>.

Zie ook

Van toepassing op

Deserialize(XmlSerializationReader)

Het XML-document dat door de opgegeven XmlSerializationReaderis opgenomen, wordt gedeserialiseerd.

protected:
 virtual System::Object ^ Deserialize(System::Xml::Serialization::XmlSerializationReader ^ reader);
protected virtual object Deserialize(System.Xml.Serialization.XmlSerializationReader reader);
abstract member Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
override this.Deserialize : System.Xml.Serialization.XmlSerializationReader -> obj
Protected Overridable Function Deserialize (reader As XmlSerializationReader) As Object

Parameters

reader
XmlSerializationReader

Het XmlSerializationReader xml-document dat moet worden gedeserialiseerd.

Retouren

Het gedeserialiseerde object.

Uitzonderingen

Er wordt geprobeerd toegang te krijgen tot de methode wanneer de methode niet wordt overschreven in een onderliggende klasse.

Van toepassing op

Deserialize(XmlReader)

Het XML-document dat door de opgegeven XmlReaderis opgenomen, wordt gedeserialiseerd.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader);
public object Deserialize(System.Xml.XmlReader xmlReader);
member this.Deserialize : System.Xml.XmlReader -> obj
Public Function Deserialize (xmlReader As XmlReader) As Object

Parameters

xmlReader
XmlReader

Het XmlReader xml-document dat moet worden gedeserialiseerd.

Retouren

Het Object gedeserialiseerde.

Uitzonderingen

Er is een fout opgetreden tijdens de deserialisatie. De oorspronkelijke uitzondering is beschikbaar met behulp van de InnerException eigenschap.

Voorbeelden

In het volgende voorbeeld wordt een object gedeserialiseerd met behulp van een XmlReader.

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);
    }
}
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization

' This is the class that will be deserialized.
Public Class OrderedItem
    Public ItemName As String
    Public Description As String
    Public UnitPrice As Decimal
    Public Quantity As Integer
    Public LineTotal As Decimal
        
    ' A custom method used to calculate price per item.
    Public Sub Calculate()
        LineTotal = UnitPrice * Quantity
    End Sub
End Class

Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        ' Read a purchase order.
        t.DeserializeObject("simple.xml")
    End Sub
      
    Private Sub DeserializeObject(ByVal filename As String)
        Console.WriteLine("Reading with XmlReader")
        
        ' Create an instance of the XmlSerializer specifying type and namespace.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        
        ' A FileStream is needed to read the XML document.
        Dim fs As New FileStream(filename, FileMode.Open)
        Dim reader As XmlReader = XmlReader.Create(fs)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state.
        i = CType(serializer.Deserialize(reader), OrderedItem)
        fs.Close()

        ' Write out the properties of the object.
        Console.Write(i.ItemName & ControlChars.Tab & _
                      i.Description & ControlChars.Tab & _
                      i.UnitPrice & ControlChars.Tab & _
                      i.Quantity & ControlChars.Tab & _
                      i.LineTotal)
    End Sub
End Class
<?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>

Opmerkingen

Deserialisatie is het lezen van een exemplaar van een XML-document en het samenstellen van een object dat sterk is getypt in het XML-schema (XSD) van het document.

Voordat deserialisatie wordt gedeserialiseerd, moet een XmlSerializer object worden samengesteld met behulp van het type object dat wordt gedeserialiseerd.

De XmlReader code detecteert en gebruikt automatisch de codering die is opgegeven door het XML-document.

Note

Het XmlSerializer kan het volgende niet deserialiseren: matrices van ArrayList en matrices van List<T>.

Zie ook

Van toepassing op

Deserialize(XmlReader, String)

Het XML-document dat is opgenomen in de opgegeven XmlReader en coderingsstijl, wordt gedeserialiseerd.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle);
public object Deserialize(System.Xml.XmlReader xmlReader, string encodingStyle);
member this.Deserialize : System.Xml.XmlReader * string -> obj
Public Function Deserialize (xmlReader As XmlReader, encodingStyle As String) As Object

Parameters

xmlReader
XmlReader

Het XmlReader xml-document dat moet worden gedeserialiseerd.

encodingStyle
String

De coderingsstijl van de geserialiseerde XML.

Retouren

Het gedeserialiseerde object.

Uitzonderingen

Er is een fout opgetreden tijdens de deserialisatie. De oorspronkelijke uitzondering is beschikbaar met behulp van de InnerException eigenschap.

Opmerkingen

Deserialisatie is het lezen van een exemplaar van een XML-document en het samenstellen van een object dat sterk is getypt in het XML-schema (XSD) van het document.

Voordat deserialisatie wordt gedeserialiseerd, moet een XmlSerializer object worden samengesteld met behulp van het type object dat wordt gedeserialiseerd.

Stel de encodingStyle parameter in op 'http://schemas.xmlsoap.org/soap/encoding/' voor SOAP-versie 1.1-codering; anders stelt u deze in op 'http://www.w3.org/2001/12/soap-encoding' voor SOAP-versie 1.2-codering.

Opmerking Het XmlSerializer kan het volgende niet deserialiseren: matrices van ArrayList en matrices van List<T>.

Zie ook

Van toepassing op

Deserialize(XmlReader, XmlDeserializationEvents)

Hiermee wordt een XML-document dat door de opgegeven is XmlReader opgenomen, gedeserialiseerd en wordt het overschrijven van gebeurtenissen toegestaan die optreden tijdens deserialisatie.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::Xml::Serialization::XmlDeserializationEvents events);
public object Deserialize(System.Xml.XmlReader xmlReader, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * System.Xml.Serialization.XmlDeserializationEvents -> obj
Public Function Deserialize (xmlReader As XmlReader, events As XmlDeserializationEvents) As Object

Parameters

xmlReader
XmlReader

De XmlReader inhoud van het document dat moet worden gedeserialiseerd.

events
XmlDeserializationEvents

Een exemplaar van de XmlDeserializationEvents klasse.

Retouren

Het Object gedeserialiseerde.

Opmerkingen

Het object wordt gedeserialiseerd.

Van toepassing op

Deserialize(XmlReader, String, XmlDeserializationEvents)

Het object ontserialiseerd met behulp van de gegevens die zijn opgenomen in de opgegeven XmlReader.

public:
 System::Object ^ Deserialize(System::Xml::XmlReader ^ xmlReader, System::String ^ encodingStyle, System::Xml::Serialization::XmlDeserializationEvents events);
public object Deserialize(System.Xml.XmlReader xmlReader, string encodingStyle, System.Xml.Serialization.XmlDeserializationEvents events);
member this.Deserialize : System.Xml.XmlReader * string * System.Xml.Serialization.XmlDeserializationEvents -> obj
Public Function Deserialize (xmlReader As XmlReader, encodingStyle As String, events As XmlDeserializationEvents) As Object

Parameters

xmlReader
XmlReader

Een exemplaar van de XmlReader klasse die wordt gebruikt om het document te lezen.

encodingStyle
String

De gebruikte codering.

events
XmlDeserializationEvents

Een exemplaar van de XmlDeserializationEvents klasse.

Retouren

Het object wordt gedeserialiseerd.

Kenmerken

Opmerkingen

Deze methode is alleen vereist voor deserialisatie van onbekende headers voor webservicescenario's. Met deze methode kunt u gebeurtenissynchronisatie in webservicemethoden voorkomen.

Van toepassing op