XmlSerializer.Serialize XmlSerializer.Serialize XmlSerializer.Serialize XmlSerializer.Serialize Method

定義

オブジェクトを XML ドキュメントにシリアル化します。Serializes an object into an XML document.

オーバーロード

Serialize(XmlWriter, Object) Serialize(XmlWriter, Object) Serialize(XmlWriter, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)

指定した Object をシリアル化し、指定した XmlWriter、XML 名前空間、およびエンコーディングを使用して、XML ドキュメントをファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter, XML namespaces, and encoding.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

指定したオブジェクトをシリアル化し、指定した XmlWriter を使用して、指定した名前空間とエンコード スタイルを参照し、生成された XML ドキュメントをファイルに書き込みます。Serializes the specified object and writes the XML document to a file using the specified XmlWriter and references the specified namespaces and encoding style.

Serialize(XmlWriter, Object, XmlSerializerNamespaces) Serialize(XmlWriter, Object, XmlSerializerNamespaces) Serialize(XmlWriter, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した XmlWriter を使用して XML ドキュメントをファイルに書き込み、指定した名前空間を参照します。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter and references the specified namespaces.

Serialize(TextWriter, Object, XmlSerializerNamespaces) Serialize(TextWriter, Object, XmlSerializerNamespaces) Serialize(TextWriter, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した TextWriter を使用して XML ドキュメントをファイルに書き込み、指定した名前空間を参照します。Serializes the specified Object and writes the XML document to a file using the specified TextWriter and references the specified namespaces.

Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlSerializationWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlSerializationWriter.

Serialize(TextWriter, Object) Serialize(TextWriter, Object) Serialize(TextWriter, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した TextWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified TextWriter.

Serialize(Stream, Object) Serialize(Stream, Object) Serialize(Stream, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した Stream を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified Stream.

Serialize(Stream, Object, XmlSerializerNamespaces) Serialize(Stream, Object, XmlSerializerNamespaces) Serialize(Stream, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した Stream を使用して、指定した名前空間を参照し、生成された XML ドキュメントをファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified Stream that references the specified namespaces.

Serialize(XmlWriter, Object) Serialize(XmlWriter, Object) Serialize(XmlWriter, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o);
member this.Serialize : System.Xml.XmlWriter * obj -> unit

パラメーター

xmlWriter
XmlWriter XmlWriter XmlWriter XmlWriter

XML ドキュメントを書き込むために使用する XmlWriterThe XmlWriter used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

次の例では、オブジェクトを使用して、シリアル化、XmlWriterします。The following example serializes an object using an XmlWriter.

#using <System.Xml.dll>
#using <System.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 ref 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 SerializeObject( String^ filename )
{
   Console::WriteLine( "Writing With XmlTextWriter" );
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   // Create an XmlTextWriter using a FileStream.
   Stream^ fs = gcnew FileStream( filename,FileMode::Create );
   XmlWriter^ writer = gcnew XmlTextWriter( fs,Encoding::Unicode );

   // Serialize using the XmlTextWriter.
   serializer->Serialize( writer, i );
   writer->Close();
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
}
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
{
   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()
   {
      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 XmlTextWriter using a FileStream.
      Stream fs = new FileStream(filename, FileMode.Create);
      XmlWriter writer = 
      new XmlTextWriter(fs, Encoding.Unicode);
      // Serialize using the XmlTextWriter.
      serializer.Serialize(writer, i);
      writer.Close();
   }
}
   
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
    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()
        ' 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 XmlTextWriter using a FileStream.
        Dim fs As New FileStream(filename, FileMode.Create)
        Dim writer As New XmlTextWriter(fs, Encoding.Unicode)
        ' Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i)
        writer.Close()
    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>

注釈

Serializeメソッドは、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティを XML に変換します。The Serialize method converts the public fields and read/write properties of an object into XML. メソッド、インデクサー、プライベート フィールド、または読み取り専用プロパティは変換されません。It does not convert methods, indexers, private fields, or read-only properties. パブリックおよびプライベートの両方を使用するオブジェクトのすべてのフィールドとプロパティをシリアル化する、BinaryFormatterします。To serialize all an object's fields and properties, both public and private, use the BinaryFormatter.

xmlWriterパラメーター、抽象から派生したオブジェクトを指定XmlWriterクラス。In the xmlWriter parameter, specify an object that derives from the abstract XmlWriter class. XmlTextWriterから派生した、XmlWriterします。The XmlTextWriter derives from the XmlWriter.

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String, String)

指定した Object をシリアル化し、指定した XmlWriter、XML 名前空間、およびエンコーディングを使用して、XML ドキュメントをファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter, XML namespaces, and encoding.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle, System::String ^ id);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle, string id);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string * string -> unit

パラメーター

xmlWriter
XmlWriter XmlWriter XmlWriter XmlWriter

XML ドキュメントを書き込むために使用する XmlWriterThe XmlWriter used to write the XML document.

o
Object Object Object Object

シリアル化するオブジェクト。The object to serialize.

namespaces
XmlSerializerNamespaces XmlSerializerNamespaces XmlSerializerNamespaces XmlSerializerNamespaces

使用する名前空間とプレフィックスを格納している XmlSerializerNamespaces のインスタンス。An instance of the XmlSerializerNamespaces that contains namespaces and prefixes to use.

encodingStyle
String String String String

ドキュメントで使用するエンコーディング。The encoding used in the document.

id
String String String String

SOAP エンコード済みメッセージの場合に、id 属性の生成に使用される基本文字列。For SOAP encoded messages, the base used to generate id attributes.

注釈

Idパラメーターが SOAP の id を作成するために使用する基本の文字列を提供します。The id parameter supplies the base string used to create SOAP ids. 既定では、"id1"、"id2"など。By default, these are "id1", "id2" and so on. かどうか、パラメーターに設定されます"myBase"生成された値が"myBaseid1"、"myBaseid2"をこれには。But if the parameter is set to "myBase" the generated values are "myBaseid1", "myBaseid2" and so on. この機能を使用して、SOAP メッセージ全体にわたって一意の id 値を作成します。This functionality is used to create unique id values across the whole SOAP message.

Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String) Serialize(XmlWriter, Object, XmlSerializerNamespaces, String)

指定したオブジェクトをシリアル化し、指定した XmlWriter を使用して、指定した名前空間とエンコード スタイルを参照し、生成された XML ドキュメントをファイルに書き込みます。Serializes the specified object and writes the XML document to a file using the specified XmlWriter and references the specified namespaces and encoding style.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces, System::String ^ encodingStyle);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces, string encodingStyle);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces * string -> unit

パラメーター

xmlWriter
XmlWriter XmlWriter XmlWriter XmlWriter

XML ドキュメントを書き込むために使用する XmlWriterThe XmlWriter used to write the XML document.

o
Object Object Object Object

シリアル化するオブジェクト。The object to serialize.

encodingStyle
String String String String

シリアル化された XML のエンコード スタイル。The encoding style of the serialized XML.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

注釈

ときに、Serializeメソッドが呼び出される、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティは、XML に変換されます。When the Serialize method is invoked, the public fields and read/write properties of an object are converted into XML. メソッド、インデクサー、プライベート フィールド、および読み取り専用プロパティはシリアル化されません。Methods, indexers, private fields, and read-only properties are not serialized. すべてのフィールドとプロパティをシリアル化するパブリックおよびプライベートの両方を使用して、BinaryFormatterします。To serialize all fields and properties, both public and private, use the BinaryFormatter.

使用して、xmlWriter抽象から派生したオブジェクトを指定するパラメーターXmlWriterクラスは、XML ドキュメントを書き込むには設計されています。Use the xmlWriter parameter to specify an object that derives from the abstract XmlWriter class, which is designed to write XML documents. XmlTextWriterから派生した、XmlWriterします。The XmlTextWriter derives from the XmlWriter.

設定、encodingStyleパラメーターを"http://schemas.xmlsoap.org/soap/encoding/"SOAP version 1.1 のエンコーディング。 それ以外の場合、設定"http://www.w3.org/2001/12/soap-encoding"SOAP version 1.2 エンコードします。Set the encodingStyle parameter to "http://schemas.xmlsoap.org/soap/encoding/" for SOAP version 1.1 encoding; otherwise, set it to "http://www.w3.org/2001/12/soap-encoding" for SOAP version 1.2 encoding.

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(XmlWriter, Object, XmlSerializerNamespaces) Serialize(XmlWriter, Object, XmlSerializerNamespaces) Serialize(XmlWriter, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した XmlWriter を使用して XML ドキュメントをファイルに書き込み、指定した名前空間を参照します。Serializes the specified Object and writes the XML document to a file using the specified XmlWriter and references the specified namespaces.

public:
 void Serialize(System::Xml::XmlWriter ^ xmlWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.Xml.XmlWriter xmlWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.Xml.XmlWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit

パラメーター

xmlWriter
XmlWriter XmlWriter XmlWriter XmlWriter

XML ドキュメントを書き込むために使用する XmlWriterThe XmlWriter used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

次の例を持つオブジェクトをシリアル化、XmlWriterします。The following example serializes an object with an XmlWriter. 例でも作成、XmlSerializerNamespacesオブジェクトに 2 つの名前空間を追加します。The example also creates an XmlSerializerNamespaces and adds two namespaces to the object. 複数のインスタンス、XmlElementAttributeクラスは、各要素の名前空間を指定するクラスのメンバーに適用されます。Several instances of the XmlElementAttribute class are applied to the class members to specify the namespace for each element.

#using <System.Xml.dll>
#using <System.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 ref class OrderedItem
{
public:

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ ItemName;

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ Description;

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Decimal UnitPrice;

   [XmlElement(Namespace="http://www.cpandl.com")]
   int Quantity;

   [XmlElement(Namespace="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( "Writing With XmlTextWriter" );
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   // Create an XmlSerializerNamespaces object.
   XmlSerializerNamespaces^ ns = gcnew 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 = gcnew FileStream( filename,FileMode::Create );
   XmlWriter^ writer = gcnew XmlTextWriter( fs,gcnew UTF8Encoding );

   // Serialize using the XmlTextWriter.
   serializer->Serialize( writer, i, ns );
   writer->Close();
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
}
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();
   }
}

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

<?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>

注釈

ときに、Serializeメソッドが呼び出される、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティは、XML に変換されます。When the Serialize method is invoked, the public fields and read/write properties of an object are converted into XML. メソッド、インデクサー、プライベート フィールド、および読み取り専用プロパティはシリアル化されません。Methods, indexers, private fields, and read-only properties are not serialized. すべてのフィールドとプロパティをシリアル化するパブリックおよびプライベートの両方を使用して、BinaryFormatterします。To serialize all fields and properties, both public and private, use the BinaryFormatter.

使用して、xmlWriter抽象から派生したオブジェクトを指定するパラメーターXmlWriterクラスは、XML ドキュメントを書き込むには設計されています。Use the xmlWriter parameter to specify an object that derives from the abstract XmlWriter class, which is designed to write XML documents. XmlTextWriterから派生した、XmlWriterします。The XmlTextWriter derives from the XmlWriter.

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(TextWriter, Object, XmlSerializerNamespaces) Serialize(TextWriter, Object, XmlSerializerNamespaces) Serialize(TextWriter, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した TextWriter を使用して XML ドキュメントをファイルに書き込み、指定した名前空間を参照します。Serializes the specified Object and writes the XML document to a file using the specified TextWriter and references the specified namespaces.

public:
 void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.IO.TextWriter textWriter, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.IO.TextWriter * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit

パラメーター

textWriter
TextWriter TextWriter TextWriter TextWriter

XML ドキュメントを書き込むために使用する TextWriterThe TextWriter used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

namespaces
XmlSerializerNamespaces XmlSerializerNamespaces XmlSerializerNamespaces XmlSerializerNamespaces

生成された XML ドキュメントで使用する名前空間を格納している XmlSerializerNamespacesThe XmlSerializerNamespaces that contains namespaces for the generated XML document.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

次の例を持つオブジェクトをシリアル化、TextWriterします。The following example serializes an object with a TextWriter. 例でも作成、XmlSerializerNamespacesオブジェクトおよびオブジェクトに 2 つの名前空間を追加します。The example also creates an XmlSerializerNamespaces object and adds two namespaces to the object. シリアル化されたオブジェクトを定義するクラスの属性がXmlElementAttribute属性の名前空間の各要素を指定してください。The class that defines the serialized object is also attributed with XmlElementAttribute attributes to specify the namespace for each element.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

// This is the class that will be serialized.
public ref class OrderedItem
{
public:

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ ItemName;

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ Description;

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Decimal UnitPrice;

   [XmlElement(Namespace="http://www.cpandl.com")]
   int Quantity;

   [XmlElement(Namespace="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( "Writing With TextWriter" );

   // Create an XmlSerializer instance using the type.
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   // Create an XmlSerializerNamespaces object.
   XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;

   // Add two namespaces with prefixes.
   ns->Add( "inventory", "http://www.cpandl.com" );
   ns->Add( "money", "http://www.cohowinery.com" );

   // Create a StreamWriter to write with.
   TextWriter^ writer = gcnew StreamWriter( filename );

   /* Serialize using the object using the TextWriter 
      and namespaces. */
   serializer->Serialize( writer, i, ns );
   writer->Close();
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
}
using System;
using System.IO;
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(string[] args)
   {
      Test t = new Test();
      // Write a purchase order.
      t.SerializeObject("simple.xml");
   }
 
   private void SerializeObject(string filename)
   {
      Console.WriteLine("Writing With TextWriter");
      // Create an XmlSerializer instance using the type.
      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 a StreamWriter to write with.
      TextWriter writer = new StreamWriter(filename);
      /* Serialize using the object using the TextWriter 
      and namespaces. */
      serializer.Serialize(writer, i, ns);
      writer.Close();
   }
}

Imports System
Imports System.IO
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 TextWriter")
        ' Create an XmlSerializer instance using the type.
        Dim serializer As New XmlSerializer(GetType(OrderedItem))
        Dim i As New OrderedItem()
        i.ItemName = "Widget"
        i.Description = "Regular Widget"
        i.Quantity = 10
        i.UnitPrice = CDec(2.3)
        i.Calculate()
        
        ' 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 a StreamWriter to write with.
        Dim writer As New StreamWriter(filename)
        ' Serialize using the object using the TextWriter
        ' and namespaces. 
        serializer.Serialize(writer, i, ns)
        writer.Close()
    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>

注釈

ときに、Serializeメソッドが呼び出されるパブリック フィールドとオブジェクトの読み取り/書き込みプロパティは、XML に変換されます。When the Serialize method is invoked the public fields and read/write properties of an object are converted into XML. メソッド、インデクサー、プライベート フィールド、および読み取り専用プロパティはシリアル化されません。Methods, indexers, private fields, and read-only properties are not serialized. すべてのフィールドとプロパティをシリアル化するパブリックおよびプライベートの両方を使用して、BinaryFormatterします。To serialize all fields and properties, both public and private, use the BinaryFormatter.

使用して、textWriter抽象から派生したオブジェクトを指定するパラメーターTextWriterクラス。Use the textWriter parameter to specify an object that derives from the abstract TextWriter class. 派生するクラスTextWriterクラスが含まれます。Classes that derive from TextWriter class include:

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter) Serialize(Object, XmlSerializationWriter)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlSerializationWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified XmlSerializationWriter.

protected:
 virtual void Serialize(System::Object ^ o, System::Xml::Serialization::XmlSerializationWriter ^ writer);
protected virtual void Serialize (object o, System.Xml.Serialization.XmlSerializationWriter writer);
abstract member Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
override this.Serialize : obj * System.Xml.Serialization.XmlSerializationWriter -> unit
Protected Overridable Sub Serialize (o As Object, writer As XmlSerializationWriter)

パラメーター

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

writer
XmlSerializationWriter XmlSerializationWriter XmlSerializationWriter XmlSerializationWriter

XML ドキュメントを書き込むために使用する XmlSerializationWriterThe XmlSerializationWriter used to write the XML document.

例外

メソッドが派生クラスでオーバーライドされない場合は、そのメソッドへのアクセスが行われます。Any attempt is made to access the method when the method is not overridden in a descendant class.

Serialize(TextWriter, Object) Serialize(TextWriter, Object) Serialize(TextWriter, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した TextWriter を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified TextWriter.

public:
 void Serialize(System::IO::TextWriter ^ textWriter, System::Object ^ o);
public void Serialize (System.IO.TextWriter textWriter, object o);
member this.Serialize : System.IO.TextWriter * obj -> unit

パラメーター

textWriter
TextWriter TextWriter TextWriter TextWriter

XML ドキュメントを書き込むために使用する TextWriterThe TextWriter used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

次の例では、オブジェクトを使用して、シリアル化、TextWriterします。The following example serializes an object using a TextWriter.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Xml::Serialization;

// This is the class that will be serialized.
public ref 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 SerializeObject( String^ filename )
{
   Console::WriteLine( "Writing With TextWriter" );
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   /* Create a StreamWriter to write with. First create a FileStream
      object, and create the StreamWriter specifying an Encoding to use. */
   FileStream^ fs = gcnew FileStream( filename,FileMode::Create );
   TextWriter^ writer = gcnew StreamWriter( fs,gcnew UTF8Encoding );

   // Serialize using the XmlTextWriter.
   serializer->Serialize( writer, i );
   writer->Close();
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Text;
using System.Xml.Serialization;

// This is the class that will be serialized.
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();
      // Write a purchase order.
      t.SerializeObject("simple.xml");
   }
 
  private void SerializeObject(string filename)
  {
      Console.WriteLine("Writing With TextWriter");
 
      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 a StreamWriter to write with. First create a FileStream
         object, and create the StreamWriter specifying an Encoding to use. */
      FileStream fs = new FileStream(filename, FileMode.Create);
      TextWriter writer = new StreamWriter(fs, new UTF8Encoding());
      // Serialize using the XmlTextWriter.
      serializer.Serialize(writer, i);
      writer.Close();
   }
}

Imports System
Imports System.IO
Imports System.Text
Imports System.Xml.Serialization


' This is the class that will be serialized.
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()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With TextWriter")
        
        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 a StreamWriter to write with. First create a FileStream
        ' object, and create the StreamWriter specifying an Encoding to use. 
        Dim fs As New FileStream(filename, FileMode.Create)
        Dim writer As New StreamWriter(fs, New UTF8Encoding())
        ' Serialize using the XmlTextWriter.
        serializer.Serialize(writer, i)
        writer.Close()
    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>

注釈

Serializeメソッドは、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティを XML に変換します。The Serialize method converts the public fields and read/write properties of an object into XML. メソッド、インデクサー、プライベート フィールド、または読み取り専用プロパティは変換されません。It does not convert methods, indexers, private fields, or read-only properties. パブリックおよびプライベートの両方を使用するオブジェクトのすべてのフィールドとプロパティをシリアル化する、BinaryFormatterします。To serialize all an object's fields and properties, both public and private, use the BinaryFormatter.

textWriterパラメーター、抽象から派生したオブジェクトを指定TextWriterクラス。In the textWriter parameter, specify an object that derives from the abstract TextWriter class. 派生するクラスTextWriterが含まれます。Classes that derive from TextWriter include:

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(Stream, Object) Serialize(Stream, Object) Serialize(Stream, Object)

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した Stream を使用してファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified Stream.

public:
 void Serialize(System::IO::Stream ^ stream, System::Object ^ o);
public void Serialize (System.IO.Stream stream, object o);
member this.Serialize : System.IO.Stream * obj -> unit

パラメーター

stream
Stream Stream Stream Stream

XML ドキュメントを書き込むために使用する StreamThe Stream used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

次の例では、オブジェクトを使用して、シリアル化、Streamオブジェクト。The following example serializes an object using a Stream object.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

// This is the class that will be serialized.
public ref 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 SerializeObject( String^ filename )
{
   Console::WriteLine( "Writing With Stream" );
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   // Create a FileStream to write with.
   Stream^ writer = gcnew FileStream( filename,FileMode::Create );

   // Serialize the object, and close the TextWriter
   serializer->Serialize( writer, i );
   writer->Close();
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;

// This is the class that will be serialized.
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();
      // Write a purchase order.
      t.SerializeObject("simple.xml");
   }
 
   private void SerializeObject(string filename)
   {
      Console.WriteLine("Writing With Stream");
 
      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 a FileStream to write with.
      Stream writer = new FileStream(filename, FileMode.Create);
      // Serialize the object, and close the TextWriter
      serializer.Serialize(writer, i);
      writer.Close();
   }
}

Imports System
Imports System.IO
Imports System.Xml.Serialization


' This is the class that will be serialized.
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()
        ' Write a purchase order.
        t.SerializeObject("simple.xml")
    End Sub
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With Stream")
        
        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 a FileStream to write with.
        Dim writer As New FileStream(filename, FileMode.Create)
        ' Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i)
        writer.Close()
    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>

注釈

Serializeメソッドは、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティを XML に変換します。The Serialize method converts the public fields and read/write properties of an object into XML. メソッド、インデクサー、プライベート フィールド、または読み取り専用プロパティは変換されません。It does not convert methods, indexers, private fields, or read-only properties. すべてのオブジェクトのフィールドとプロパティをシリアル化には、パブリックとプライベートの両方を使用して、BinaryFormatterします。To serialize all of an object's fields and properties, both public and private, use the BinaryFormatter.

streamパラメーター、抽象から派生したオブジェクトを指定Streamクラス。In the stream parameter, specify an object that derives from the abstract Stream class. 派生するクラスStreamが含まれます。Classes that derive from Stream include:

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

Serialize(Stream, Object, XmlSerializerNamespaces) Serialize(Stream, Object, XmlSerializerNamespaces) Serialize(Stream, Object, XmlSerializerNamespaces)

指定した Object をシリアル化し、指定した Stream を使用して、指定した名前空間を参照し、生成された XML ドキュメントをファイルに書き込みます。Serializes the specified Object and writes the XML document to a file using the specified Stream that references the specified namespaces.

public:
 void Serialize(System::IO::Stream ^ stream, System::Object ^ o, System::Xml::Serialization::XmlSerializerNamespaces ^ namespaces);
public void Serialize (System.IO.Stream stream, object o, System.Xml.Serialization.XmlSerializerNamespaces namespaces);
member this.Serialize : System.IO.Stream * obj * System.Xml.Serialization.XmlSerializerNamespaces -> unit

パラメーター

stream
Stream Stream Stream Stream

XML ドキュメントを書き込むために使用する StreamThe Stream used to write the XML document.

o
Object Object Object Object

シリアル化する ObjectThe Object to serialize.

例外

シリアル化中にエラーが発生しました。An error occurred during serialization. 元の例外には、InnerException プロパティを使用してアクセスできます。The original exception is available using the InnerException property.

次の例を持つオブジェクトをシリアル化、Streamオブジェクト。The following example serializes an object with a Stream object. 例でも作成、XmlSerializerNamespacesオブジェクトに 2 つの名前空間を追加します。The example also creates an XmlSerializerNamespaces and adds two namespaces to the object. シリアル化されたオブジェクトを定義するクラスの属性がXmlElementAttribute属性の名前空間の各要素を指定してください。The class that defines the serialized object is also attributed with XmlElementAttribute attributes to specify the namespace for each element.

#using <System.Xml.dll>
#using <System.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;

// This is the class that will be serialized.
public ref class OrderedItem
{
public:

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ ItemName;

   [XmlElement(Namespace="http://www.cpandl.com")]
   String^ Description;

   [XmlElement(Namespace="http://www.cohowinery.com")]
   Decimal UnitPrice;

   [XmlElement(Namespace="http://www.cpandl.com")]
   int Quantity;

   [XmlElement(Namespace="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( "Writing With Stream" );
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );
   OrderedItem^ i = gcnew OrderedItem;
   i->ItemName = "Widget";
   i->Description = "Regular Widget";
   i->Quantity = 10;
   i->UnitPrice = (Decimal)2.30;
   i->Calculate();

   // Create an XmlSerializerNamespaces object.
   XmlSerializerNamespaces^ ns = gcnew XmlSerializerNamespaces;

   // Add two prefix-namespace pairs.
   ns->Add( "inventory", "http://www.cpandl.com" );
   ns->Add( "money", "http://www.cohowinery.com" );

   // Create a FileStream to write with.
   Stream^ writer = gcnew FileStream( filename,FileMode::Create );

   // Serialize the object, and close the TextWriter
   serializer->Serialize( writer, i, ns );
   writer->Close();
}

void DeserializeObject( String^ filename )
{
   Console::WriteLine( "Reading with Stream" );

   // Create an instance of the XmlSerializer.
   XmlSerializer^ serializer = gcnew XmlSerializer( OrderedItem::typeid );

   // Writing the file requires a Stream.
   Stream^ reader = gcnew FileStream( filename,FileMode::Open );

   // Declare an object variable of the type to be deserialized.
   OrderedItem^ i;

   /* Use the Deserialize method to restore the object's state 
      using data from the XML document. */
   i = dynamic_cast<OrderedItem^>(serializer->Deserialize( reader ));

   // Write out the properties of the object.
   Console::Write( "{0}\t{1}\t{2}\t{3}\t{4}", i->ItemName, i->Description, i->UnitPrice, i->Quantity, i->LineTotal );
}

int main()
{
   // Write a purchase order.
   SerializeObject( "simple.xml" );
   DeserializeObject( "simple.xml" );
}

using System;
using System.IO;
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");
        t.DeserializeObject("simple.xml");
   }
 
   private void SerializeObject(string filename) {
        Console.WriteLine("Writing With Stream");
 
        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 prefix-namespace pairs.
        ns.Add("inventory", "http://www.cpandl.com");
        ns.Add("money", "http://www.cohowinery.com");

        // Create a FileStream to write with.
        Stream writer = new FileStream(filename, FileMode.Create);

        // Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i, ns);
        writer.Close();
    }
 
    private void DeserializeObject(string filename) {
        Console.WriteLine("Reading with Stream");
        // Create an instance of the XmlSerializer.
        XmlSerializer serializer = new XmlSerializer(typeof(OrderedItem));

        // Writing the file requires a Stream.
        Stream reader= new FileStream(filename,FileMode.Open);
          
        // Declare an object variable of the type to be deserialized.
        OrderedItem i;

        /* Use the Deserialize method to restore the object's state 
           using data from the XML document. */
        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
Imports System.IO
Imports System.Xml.Serialization
Imports Microsoft.VisualBasic


' 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")
        t.DeserializeObject("simple.xml")
    End Sub    
    
    Private Sub SerializeObject(ByVal filename As String)
        Console.WriteLine("Writing With Stream")
        
        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 prefix-namespace pairs.
        ns.Add("inventory", "http://www.cpandl.com")
        ns.Add("money", "http://www.cohowinery.com")
        
        ' Create a FileStream to write with.
        Dim writer As New FileStream(filename, FileMode.Create)
        
        ' Serialize the object, and close the TextWriter
        serializer.Serialize(writer, i, ns)
        writer.Close()
    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))
        
        ' Writing the file requires a Stream.
        Dim reader As New FileStream(filename, FileMode.Open)
        
        ' Declare an object variable of the type to be deserialized.
        Dim i As OrderedItem
        
        ' Use the Deserialize method to restore the object's state
        ' using data from the XML document. 
        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

注釈

ときに、Serializeメソッドが呼び出される、パブリック フィールドとオブジェクトの読み取り/書き込みプロパティは、XML に変換されます。When the Serialize method is invoked, the public fields and read/write properties of an object are converted into XML. メソッド、インデクサー、プライベート フィールド、および読み取り専用プロパティはシリアル化されません。Methods, indexers, private fields, and read-only properties are not serialized. すべてのフィールドとプロパティをシリアル化するパブリックおよびプライベートの両方を使用して、BinaryFormatterします。To serialize all fields and properties, both public and private, use the BinaryFormatter.

使用して、stream抽象から派生したオブジェクトを指定するパラメーターStreamクラスは、ストリームに書き込むには設計されています。Use the stream parameter to specify an object that derives from the abstract Stream class, which is designed to write to streams. 派生するクラス、Streamクラスが含まれます。Classes that derive from the Stream class include:

注意

XmlSerializer 、次のシリアル化できません: 配列のArrayListと配列のList<T>します。The XmlSerializer cannot serialize the following: arrays of ArrayList and arrays of List<T>.

こちらもご覧ください

適用対象