This documentation is archived and is not being maintained.
XmlSerializer.Deserialize Method
.NET Framework 1.1
Deserializes an XML document.
Overload List
Deserializes the XML document contained by the specified Stream.
[Visual Basic] Overloads Public Function Deserialize(Stream) As Object
[C#] public object Deserialize(Stream);
[C++] public: Object* Deserialize(Stream*);
[JScript] public function Deserialize(Stream) : Object;
Deserializes the XML document contained by the specified TextReader.
[Visual Basic] Overloads Public Function Deserialize(TextReader) As Object
[C#] public object Deserialize(TextReader);
[C++] public: Object* Deserialize(TextReader*);
[JScript] public function Deserialize(TextReader) : Object;
Deserializes the XML document contained by the specified XmlReader.
[Visual Basic] Overloads Public Function Deserialize(XmlReader) As Object
[C#] public object Deserialize(XmlReader);
[C++] public: Object* Deserialize(XmlReader*);
[JScript] public function Deserialize(XmlReader) : Object;
This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.
[Visual Basic] Overloads Protected Overridable Function Deserialize(XmlSerializationReader) As Object
[C#] protected virtual object Deserialize(XmlSerializationReader);
[C++] protected: virtual Object* Deserialize(XmlSerializationReader*);
[JScript] protected function Deserialize(XmlSerializationReader) : Object;
Example
[Visual Basic, C#, C++] The following example deserializes an object using an XmlReader.
[Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of Deserialize. For other examples that might be available, see the individual overload topics.
[Visual Basic] Imports System Imports System.IO Imports System.Text Imports System.Xml Imports System.Xml.Serialization Imports Microsoft.VisualBasic ' 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 New XmlTextReader(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 [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 = new XmlTextReader(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); } } [C++] #using <mscorlib.dll> #using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Text; using namespace System::Xml; using namespace System::Xml::Serialization; // This is the class that will be deserialized. public __gc class OrderedItem { public: String* ItemName; String* Description; Decimal UnitPrice; int Quantity; Decimal LineTotal; // A custom method used to calculate price per item. void Calculate() { LineTotal = UnitPrice * Quantity; } }; void DeserializeObject(String* filename) { Console::WriteLine(S"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 = new XmlTextReader(fs); // Declare an object variable of the type to be deserialized. OrderedItem* i; // Use the Deserialize method to restore the object's state. i = dynamic_cast<OrderedItem*> (serializer->Deserialize(reader)); // Write out the properties of the object. Console::Write(S"{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, __box(i->UnitPrice), __box(i->Quantity), i->LineTotal); } int main() { // Read a purchase order. DeserializeObject(S"simple.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>
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
See Also
XmlSerializer Class | XmlSerializer Members | System.Xml.Serialization Namespace
Show: