Share via


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)

[C#] public void Serialize(Stream, object);

[C++] public: void Serialize(Stream*, Object*);

[JScript] public function Serialize(Stream, Object);

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した TextWriter を使用してファイルに書き込みます。

[Visual Basic] Overloads Public Sub Serialize(TextWriter, Object)

[C#] public void Serialize(TextWriter, object);

[C++] public: void Serialize(TextWriter*, Object*);

[JScript] public function Serialize(TextWriter, Object);

指定した Object をシリアル化し、生成された XML ドキュメントを、指定した XmlWriter を使用してファイルに書き込みます。

[Visual Basic] Overloads Public Sub Serialize(XmlWriter, Object)

[C#] public void Serialize(XmlWriter, object);

[C++] public: void Serialize(XmlWriter*, Object*);

[JScript] public function 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 名前空間