XmlSerializer.Deserialize Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
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
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Inleiding tot XML-serialisatie
- Procedure: Geef een alternatieve elementnaam op voor een XML-stream
- XML-serialisatie beheren met behulp van kenmerken
- Voorbeelden van XML-serialisatie
- Xml Schema Definition Tool (Xsd.exe)
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
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Inleiding tot XML-serialisatie
- Procedure: Geef een alternatieve elementnaam op voor een XML-stream
- XML-serialisatie beheren met behulp van kenmerken
- Voorbeelden van XML-serialisatie
- Xml Schema Definition Tool (Xsd.exe)
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
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
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Inleiding tot XML-serialisatie
- Procedure: Geef een alternatieve elementnaam op voor een XML-stream
- XML-serialisatie beheren met behulp van kenmerken
- Voorbeelden van XML-serialisatie
- Xml Schema Definition Tool (Xsd.exe)
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
- 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
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Inleiding tot XML-serialisatie
- Procedure: Geef een alternatieve elementnaam op voor een XML-stream
- XML-serialisatie beheren met behulp van kenmerken
- Voorbeelden van XML-serialisatie
- Xml Schema Definition Tool (Xsd.exe)
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
- 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.