XmlSerializer.Deserialize Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Desserializa um documento XML.
Sobrecargas
| Name | Description |
|---|---|
| Deserialize(Stream) |
Desserializa o documento XML contido pelo especificado Stream. |
| Deserialize(TextReader) |
Desserializa o documento XML contido pelo especificado TextReader. |
| Deserialize(XmlSerializationReader) |
Desserializa o documento XML contido pelo especificado XmlSerializationReader. |
| Deserialize(XmlReader) |
Desserializa o documento XML contido pelo especificado XmlReader. |
| Deserialize(XmlReader, String) |
Desserializa o documento XML contido pelo estilo especificado XmlReader e de codificação. |
| Deserialize(XmlReader, XmlDeserializationEvents) |
Desserializa um documento XML contido pelo especificado XmlReader e permite a sobreposição de eventos que ocorrem durante a desserialização. |
| Deserialize(XmlReader, String, XmlDeserializationEvents) |
Desserializa o objeto usando os dados contidos pelo especificado XmlReader. |
Deserialize(Stream)
Desserializa o documento XML contido pelo especificado Stream.
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
Parâmetros
Devoluções
O Object ser desserializado.
Exemplos
O exemplo seguinte desserializa um objeto usando um Stream objeto.
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>
Observações
Deserialização é o processo de ler um documento XML e construir um objeto fortemente tipado ao XML Schema (XSD) do documento.
Antes da desserialização, um XmlSerializer deve ser construído usando o tipo do objeto que está a ser desserializado.
Use o stream parâmetro para especificar um objeto que deriva da Stream classe, que foi concebido para escrever em streams. As classes que derivam da Stream classe incluem:
Note
Os XmlSerializer não podem desserializar os seguintes: arrays de ArrayList e arrays de List<T>.
Ver também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como: Especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de serialização XML
- Ferramenta de definição de esquema XML (Xsd.exe)
Aplica-se a
Deserialize(TextReader)
Desserializa o documento XML contido pelo especificado TextReader.
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
Parâmetros
- textReader
- TextReader
O TextReader que contém o documento XML para desserializar.
Devoluções
O Object ser desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível através da InnerException propriedade.
Exemplos
O exemplo seguinte desserializa um objeto usando um TextReader objeto.
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
Observações
A deserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XML Schema (XSD) do documento.
Antes da desserialização, um XmlSerializer deve ser construído usando o tipo do objeto que está a ser desserializado.
Classes que herdam de TextReader incluem StringReader e StreamReader. Se estiver a usar um StreamReader para desserializar um objeto, deve construir o StreamReader com um apropriado Encoding. A codificação especificada pelo documento XML é ignorada.
Note
Para usar a codificação especificada pelo documento XML, use a Deserialize sobrecarga que toma um XmlReader em vez disso. O XmlReader deteta e utiliza automaticamente a codificação especificada pelo documento XML.
Note
Os XmlSerializer não podem desserializar os seguintes: arrays de ArrayList e arrays de List<T>.
Ver também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como: Especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de serialização XML
- Ferramenta de definição de esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlSerializationReader)
Desserializa o documento XML contido pelo especificado XmlSerializationReader.
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
Parâmetros
- reader
- XmlSerializationReader
O XmlSerializationReader que contém o documento XML para desserializar.
Devoluções
O objeto desserializado.
Exceções
Qualquer tentativa é feita para aceder ao método quando este não é sobreposto numa classe descendente.
Aplica-se a
Deserialize(XmlReader)
Desserializa o documento XML contido pelo especificado XmlReader.
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
Parâmetros
Devoluções
O Object ser desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível através da InnerException propriedade.
Exemplos
O exemplo seguinte desserializa um objeto usando um 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>
Observações
A deserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XML Schema (XSD) do documento.
Antes da desserialização, um XmlSerializer deve ser construído usando o tipo do objeto que está a ser desserializado.
O XmlReader deteta e utiliza automaticamente a codificação especificada pelo documento XML.
Note
Os XmlSerializer não podem desserializar os seguintes: arrays de ArrayList e arrays de List<T>.
Ver também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como: Especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de serialização XML
- Ferramenta de definição de esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlReader, String)
Desserializa o documento XML contido pelo estilo especificado XmlReader e de codificação.
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
Parâmetros
- encodingStyle
- String
O estilo de codificação do XML serializado.
Devoluções
O objeto desserializado.
Exceções
Ocorreu um erro durante a desserialização. A exceção original está disponível através da InnerException propriedade.
Observações
A deserialização é o processo de ler uma instância de um documento XML e construir um objeto fortemente tipado para o XML Schema (XSD) do documento.
Antes da desserialização, um XmlSerializer deve ser construído usando o tipo do objeto que está a ser desserializado.
Defina o encodingStyle parâmetro para "http://schemas.xmlsoap.org/soap/encoding/" para a codificação SOAP versão 1.1; caso contrário, defina para "http://www.w3.org/2001/12/soap-encoding" para a codificação SOAP versão 1.2.
Nota Os XmlSerializer não podem desserializar os seguintes: arrays de ArrayList e arrays de List<T>.
Ver também
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Apresentando a serialização XML
- Como: Especificar um nome de elemento alternativo para um fluxo XML
- Controlando a serialização XML usando atributos
- Exemplos de serialização XML
- Ferramenta de definição de esquema XML (Xsd.exe)
Aplica-se a
Deserialize(XmlReader, XmlDeserializationEvents)
Desserializa um documento XML contido pelo especificado XmlReader e permite a sobreposição de eventos que ocorrem durante a desserialização.
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
Parâmetros
- events
- XmlDeserializationEvents
Uma instância da XmlDeserializationEvents classe.
Devoluções
O Object ser desserializado.
Observações
O objeto a ser desserializado.
Aplica-se a
Deserialize(XmlReader, String, XmlDeserializationEvents)
Desserializa o objeto usando os dados contidos pelo especificado 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
Parâmetros
- encodingStyle
- String
A codificação utilizada.
- events
- XmlDeserializationEvents
Uma instância da XmlDeserializationEvents classe.
Devoluções
O objeto a ser desserializado.
- Atributos
Observações
Este método é necessário apenas para desserialização de cabeçalhos desconhecidos em cenários Web Service. Este método permite evitar a sincronização de eventos nos métodos Web Service.