XmlSerializer.Deserialize Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Deserializza un documento XML.
Overload
| Nome | Descrizione |
|---|---|
| Deserialize(Stream) |
Deserializza il documento XML contenuto dall'oggetto specificato Stream. |
| Deserialize(TextReader) |
Deserializza il documento XML contenuto dall'oggetto specificato TextReader. |
| Deserialize(XmlSerializationReader) |
Deserializza il documento XML contenuto dall'oggetto specificato XmlSerializationReader. |
| Deserialize(XmlReader) |
Deserializza il documento XML contenuto dall'oggetto specificato XmlReader. |
| Deserialize(XmlReader, String) |
Deserializza il documento XML contenuto nello stile di codifica e specificato XmlReader . |
| Deserialize(XmlReader, XmlDeserializationEvents) |
Deserializza un documento XML contenuto nell'oggetto specificato XmlReader e consente l'override di eventi che si verificano durante la deserializzazione. |
| Deserialize(XmlReader, String, XmlDeserializationEvents) |
Deserializza l'oggetto utilizzando i dati contenuti nell'oggetto specificato XmlReader. |
Deserialize(Stream)
Deserializza il documento XML contenuto dall'oggetto specificato 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
Parametri
Valori restituiti
Oggetto Object da deserializzare.
Esempio
Nell'esempio seguente viene deserializza un oggetto utilizzando un Stream oggetto .
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>
Commenti
La deserializzazione è il processo di lettura di un documento XML e la costruzione di un oggetto fortemente tipizzato nell'XML Schema (XSD) del documento.
Prima della deserializzazione, è necessario costruire un oggetto XmlSerializer utilizzando il tipo dell'oggetto da deserializzare.
Usare il stream parametro per specificare un oggetto che deriva dalla Stream classe , progettato per scrivere nei flussi. Le classi che derivano dalla Stream classe includono:
Note
Impossibile XmlSerializer deserializzare le matrici di ArrayList e di List<T>.
Vedi anche
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Introduzione alla serializzazione XML
- Procedura: Specificare un nome di elemento alternativo per un flusso XML
- Controllo della serializzazione XML tramite attributi
- Esempi di serializzazione XML
- Xml Schema Definition Tool (Xsd.exe)
Si applica a
Deserialize(TextReader)
Deserializza il documento XML contenuto dall'oggetto specificato 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
Parametri
- textReader
- TextReader
Oggetto TextReader contenente il documento XML da deserializzare.
Valori restituiti
Oggetto Object da deserializzare.
Eccezioni
Errore durante la deserializzazione. L'eccezione originale è disponibile usando la InnerException proprietà .
Esempio
Nell'esempio seguente viene deserializza un oggetto utilizzando un TextReader oggetto .
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
Commenti
La deserializzazione è il processo di lettura di un'istanza di un documento XML e la costruzione di un oggetto fortemente tipizzato nell'XML Schema (XSD) del documento.
Prima della deserializzazione, è necessario costruire un oggetto XmlSerializer utilizzando il tipo dell'oggetto da deserializzare.
Classi che ereditano da TextReader includono StringReader e StreamReader. Se si usa un StreamReader oggetto per deserializzare un oggetto, è necessario costruire StreamReader con un oggetto appropriato Encoding. La codifica specificata dal documento XML viene ignorata.
Note
Per utilizzare la codifica specificata dal documento XML, utilizzare invece l'overload Deserialize che accetta .XmlReader Rileva XmlReader e utilizza automaticamente la codifica specificata dal documento XML.
Note
Impossibile XmlSerializer deserializzare le matrici di ArrayList e di List<T>.
Vedi anche
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Introduzione alla serializzazione XML
- Procedura: Specificare un nome di elemento alternativo per un flusso XML
- Controllo della serializzazione XML tramite attributi
- Esempi di serializzazione XML
- Xml Schema Definition Tool (Xsd.exe)
Si applica a
Deserialize(XmlSerializationReader)
Deserializza il documento XML contenuto dall'oggetto specificato 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
Parametri
- reader
- XmlSerializationReader
Oggetto XmlSerializationReader contenente il documento XML da deserializzare.
Valori restituiti
Oggetto deserializzato.
Eccezioni
Qualsiasi tentativo viene effettuato per accedere al metodo quando il metodo non viene sottoposto a override in una classe discendente.
Si applica a
Deserialize(XmlReader)
Deserializza il documento XML contenuto dall'oggetto specificato 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
Parametri
Valori restituiti
Oggetto Object da deserializzare.
Eccezioni
Errore durante la deserializzazione. L'eccezione originale è disponibile usando la InnerException proprietà .
Esempio
Nell'esempio seguente viene deserializza un oggetto utilizzando un oggetto 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>
Commenti
La deserializzazione è il processo di lettura di un'istanza di un documento XML e la costruzione di un oggetto fortemente tipizzato nell'XML Schema (XSD) del documento.
Prima della deserializzazione, è necessario costruire un oggetto XmlSerializer utilizzando il tipo dell'oggetto da deserializzare.
Rileva XmlReader e utilizza automaticamente la codifica specificata dal documento XML.
Note
Impossibile XmlSerializer deserializzare le matrici di ArrayList e di List<T>.
Vedi anche
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Introduzione alla serializzazione XML
- Procedura: Specificare un nome di elemento alternativo per un flusso XML
- Controllo della serializzazione XML tramite attributi
- Esempi di serializzazione XML
- Xml Schema Definition Tool (Xsd.exe)
Si applica a
Deserialize(XmlReader, String)
Deserializza il documento XML contenuto nello stile di codifica e specificato XmlReader .
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
Parametri
- encodingStyle
- String
Stile di codifica del codice XML serializzato.
Valori restituiti
Oggetto deserializzato.
Eccezioni
Errore durante la deserializzazione. L'eccezione originale è disponibile usando la InnerException proprietà .
Commenti
La deserializzazione è il processo di lettura di un'istanza di un documento XML e la costruzione di un oggetto fortemente tipizzato nell'XML Schema (XSD) del documento.
Prima della deserializzazione, è necessario costruire un oggetto XmlSerializer utilizzando il tipo dell'oggetto da deserializzare.
Impostare il parametro su "http://schemas.xmlsoap.org/soap/encoding/" per la encodingStyle codifica SOAP versione 1.1. In caso contrario, impostarlo su "http://www.w3.org/2001/12/soap-encoding" per la codifica SOAP versione 1.2.
Nota Impossibile XmlSerializer deserializzare le matrici di ArrayList e di List<T>.
Vedi anche
- XmlAttributes
- CanDeserialize(XmlReader)
- Serialize(TextWriter, Object)
- Introduzione alla serializzazione XML
- Procedura: Specificare un nome di elemento alternativo per un flusso XML
- Controllo della serializzazione XML tramite attributi
- Esempi di serializzazione XML
- Xml Schema Definition Tool (Xsd.exe)
Si applica a
Deserialize(XmlReader, XmlDeserializationEvents)
Deserializza un documento XML contenuto nell'oggetto specificato XmlReader e consente l'override di eventi che si verificano durante la deserializzazione.
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
Parametri
- events
- XmlDeserializationEvents
Istanza della classe XmlDeserializationEvents.
Valori restituiti
Oggetto Object da deserializzare.
Commenti
Oggetto da deserializzare.
Si applica a
Deserialize(XmlReader, String, XmlDeserializationEvents)
Deserializza l'oggetto utilizzando i dati contenuti nell'oggetto specificato 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
Parametri
- encodingStyle
- String
Codifica utilizzata.
- events
- XmlDeserializationEvents
Istanza della classe XmlDeserializationEvents.
Valori restituiti
Oggetto da deserializzare.
- Attributi
Commenti
Questo metodo è necessario per la deserializzazione di intestazioni sconosciute solo per gli scenari del servizio Web. Questo metodo consente di evitare la sincronizzazione degli eventi nei metodi del servizio Web.