XmlSerializer.Serialize メソッド
このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。独自に作成したコード内で直接使用することはできません。
オーバーロードの一覧
このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。独自に作成したコード内で直接使用することはできません。
[Visual Basic] Overloads Protected Overridable Sub Serialize(Object, XmlSerializationWriter)
[C#] protected virtual void Serialize(object, XmlSerializationWriter);
[C++] protected: virtual void Serialize(Object*, XmlSerializationWriter*);
[JScript] protected function Serialize(Object, XmlSerializationWriter);
指定した Object をシリアル化し、生成された XML ドキュメントを、指定した Stream を使用してファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(Stream, Object)
指定した Object をシリアル化し、生成された XML ドキュメントを、指定した TextWriter を使用してファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(TextWriter, Object)
指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlWriter を使用してファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(XmlWriter, Object)
指定した Object をシリアル化し、指定した Stream を使用して、指定した名前空間を参照し、生成された XML ドキュメントをファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(Stream, Object, XmlSerializerNamespaces)
[C#] public void Serialize(Stream, object, XmlSerializerNamespaces);
[C++] public: void Serialize(Stream*, Object*, XmlSerializerNamespaces*);
[JScript] public function Serialize(Stream, Object, XmlSerializerNamespaces);
指定した Object をシリアル化し、指定した TextWriter を使用し、指定した名前空間を参照して、生成された XML ドキュメントをファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(TextWriter, Object, XmlSerializerNamespaces)
[C#] public void Serialize(TextWriter, object, XmlSerializerNamespaces);
[C++] public: void Serialize(TextWriter*, Object*, XmlSerializerNamespaces*);
[JScript] public function Serialize(TextWriter, Object, XmlSerializerNamespaces);
指定した Object をシリアル化し、指定した XmlWriter を使用し、指定した名前空間を参照して、生成された XML ドキュメントをファイルに書き込みます。
[Visual Basic] Overloads Public Sub Serialize(XmlWriter, Object, XmlSerializerNamespaces)
[C#] public void Serialize(XmlWriter, object, XmlSerializerNamespaces);
[C++] public: void Serialize(XmlWriter*, Object*, XmlSerializerNamespaces*);
[JScript] public function Serialize(XmlWriter, Object, XmlSerializerNamespaces);
使用例
[Visual Basic, C#, C++] XmlWriter を使用して、オブジェクトをシリアル化する例を次に示します。この例では、 XmlSerializerNamespaces も作成し、そのオブジェクトに 2 つの名前空間を追加します。 XmlElementAttribute クラスのいくつかのインスタンスが、各要素の名前空間を指定するためにクラス メンバに適用されています。
[Visual Basic, C#, C++] メモ ここでは、Serialize のオーバーロード形式のうちの 1 つだけについて、使用例を示します。その他の例については、各オーバーロード形式のトピックを参照してください。
Imports System
Imports System.IO
Imports System.Text
Imports System.Xml
Imports System.Xml.Serialization
' This is the class that will be serialized.
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()
' Write a purchase order.
t.SerializeObject("simple.xml")
End Sub
Private Sub SerializeObject(ByVal filename As String)
Console.WriteLine("Writing With XmlTextWriter")
Dim serializer As New XmlSerializer(GetType(OrderedItem))
Dim i As New OrderedItem()
With i
.ItemName = "Widget"
.Description = "Regular Widget"
.Quantity = 10
.UnitPrice = CDec(2.3)
.Calculate()
End With
' Create an XmlSerializerNamespaces object.
Dim ns As New XmlSerializerNamespaces()
' Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com")
ns.Add("money", "http://www.cohowinery.com")
' Create an XmlTextWriter using a FileStream.
Dim fs As New FileStream(filename, FileMode.Create)
Dim writer As New XmlTextWriter(fs, New UTF8Encoding())
' Serialize using the XmlTextWriter.
serializer.Serialize(writer, i, ns)
writer.Close()
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 serialized.
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();
// Write a purchase order.
t.SerializeObject("simple.xml");
}
private void SerializeObject(string filename)
{
Console.WriteLine("Writing With XmlTextWriter");
XmlSerializer serializer =
new XmlSerializer(typeof(OrderedItem));
OrderedItem i = new OrderedItem();
i.ItemName = "Widget";
i.Description = "Regular Widget";
i.Quantity = 10;
i.UnitPrice = (decimal) 2.30;
i.Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces ns =
new XmlSerializerNamespaces();
// Add two namespaces with prefixes.
ns.Add("inventory", "http://www.cpandl.com");
ns.Add("money", "http://www.cohowinery.com");
// Create an XmlTextWriter using a FileStream.
Stream fs = new FileStream(filename, FileMode.Create);
XmlWriter writer =
new XmlTextWriter(fs, new UTF8Encoding());
// Serialize using the XmlTextWriter.
serializer.Serialize(writer, i, ns);
writer.Close();
}
}
[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 serialized.
public __gc class OrderedItem
{
public:
[XmlElement(Namespace = S"http://www.cpandl.com")]
String* ItemName;
[XmlElement(Namespace = S"http://www.cpandl.com")]
String* Description;
[XmlElement(Namespace=S"http://www.cohowinery.com")]
Decimal UnitPrice;
[XmlElement(Namespace = S"http://www.cpandl.com")]
int Quantity;
[XmlElement(Namespace=S"http://www.cohowinery.com")]
Decimal LineTotal;
// A custom method used to calculate price per item.
void Calculate()
{
LineTotal = UnitPrice * Quantity;
}
};
void SerializeObject(String* filename)
{
Console::WriteLine(S"Writing With XmlTextWriter");
XmlSerializer* serializer =
new XmlSerializer(__typeof(OrderedItem));
OrderedItem* i = new OrderedItem();
i->ItemName = S"Widget";
i->Description = S"Regular Widget";
i->Quantity = 10;
i->UnitPrice = (Decimal) 2.30;
i->Calculate();
// Create an XmlSerializerNamespaces object.
XmlSerializerNamespaces* ns =
new XmlSerializerNamespaces();
// Add two namespaces with prefixes.
ns->Add(S"inventory", S"http://www.cpandl.com");
ns->Add(S"money", S"http://www.cohowinery.com");
// Create an XmlTextWriter using a FileStream.
Stream* fs = new FileStream(filename, FileMode::Create);
XmlWriter* writer =
new XmlTextWriter(fs, new UTF8Encoding());
// Serialize using the XmlTextWriter.
serializer->Serialize(writer, i, ns);
writer->Close();
}
int main()
{
// Write a purchase order.
SerializeObject(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 名前空間