XmlSerializer.Deserialize メソッド
XML ドキュメントを逆シリアル化します。
オーバーロードの一覧
指定した Stream に格納されている XML ドキュメントを逆シリアル化します。
[Visual Basic] Overloads Public Function Deserialize(Stream) As Object
指定した TextReader に格納されている XML ドキュメントを逆シリアル化します。
[Visual Basic] Overloads Public Function Deserialize(TextReader) As Object
指定した XmlReader に格納されている XML ドキュメントを逆シリアル化します。
[Visual Basic] Overloads Public Function Deserialize(XmlReader) As Object
このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。独自に作成したコード内で直接使用することはできません。
[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;
使用例
[Visual Basic, C#, C++] XmlReader を使用して、オブジェクトを逆シリアル化する例を次に示します。
[Visual Basic, C#, C++] メモ ここでは、Deserialize のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
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] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
参照
XmlSerializer クラス | XmlSerializer メンバ | System.Xml.Serialization 名前空間