次の方法で共有


XmlSerializer コンストラクタ (Type, XmlRootAttribute)

指定した型のオブジェクトを XML ドキュメントにシリアル化したり、XML ドキュメントを指定した型のオブジェクトに逆シリアル化したりできる、XmlSerializer クラスの新しいインスタンスを初期化します。また、XML ルート要素として使用するクラスを指定します。

名前空間: System.Xml.Serialization
アセンブリ: System.Xml (system.xml.dll 内)

構文

'宣言
Public Sub New ( _
    type As Type, _
    root As XmlRootAttribute _
)
'使用
Dim type As Type
Dim root As XmlRootAttribute

Dim instance As New XmlSerializer(type, root)
public XmlSerializer (
    Type type,
    XmlRootAttribute root
)
public:
XmlSerializer (
    Type^ type, 
    XmlRootAttribute^ root
)
public XmlSerializer (
    Type type, 
    XmlRootAttribute root
)
public function XmlSerializer (
    type : Type, 
    root : XmlRootAttribute
)

パラメータ

  • type
    XmlSerializer がシリアル化できるオブジェクトの型。

解説

XML ドキュメントのルート要素には、他のすべての要素が入っています。既定では、type パラメータで指定されたオブジェクトがルート要素としてシリアル化されます。ルート要素の XML 要素名などのプロパティは、type オブジェクトから取得されます。ただし、root パラメータを使用すると、異なる名前空間や要素名などを設定するために使用できる XmlRootAttribute オブジェクトを指定して、既定のオブジェクトの情報を置き換えることができます。

使用例

名前空間や要素名などの XML ルート要素の各種プロパティを含む XmlRootAttribute を使用する XmlSerializer の構築例を次に示します。

Private Sub SerializeObject(ByVal filename As String)
    ' Create an XmlRootAttribute, and set its properties.
    Dim xRoot As New XmlRootAttribute()
    xRoot.ElementName = "CustomRoot"
    xRoot.Namespace = "http://www.cpandl.com"
    xRoot.IsNullable = True
    
    ' Construct the XmlSerializer with the XmlRootAttribute.
    Dim serializer As New XmlSerializer(GetType(OrderedItem), xRoot)
    
    ' Create an instance of the object to serialize.
    Dim i As New OrderedItem()
    ' Insert code to set properties of the ordered item.
    ' Writing the document requires a TextWriter.
    Dim writer As New StreamWriter(filename)
    
    serializer.Serialize(writer, i)
    writer.Close()
End Sub
    
Private Sub DeserializeObject(ByVal filename As String)
    ' Create an XmlRootAttribute, and set its properties.
    Dim xRoot As New XmlRootAttribute()
    xRoot.ElementName = "CustomRoot"
    xRoot.Namespace = "http://www.cpandl.com"
    xRoot.IsNullable = True
    
    Dim serializer As New XmlSerializer(GetType(OrderedItem), xRoot)
    
    ' A FileStream is needed to read the XML document.
    Dim fs As New FileStream(filename, FileMode.Open)
    ' Deserialize the object.
    Dim i As OrderedItem = CType(serializer.Deserialize(fs), OrderedItem)
    ' Insert code to use the object's properties and methods.
End Sub
     
private void SerializeObject(string filename) {
    // Create an XmlRootAttribute, and set its properties.
    XmlRootAttribute xRoot = new XmlRootAttribute();
    xRoot.ElementName = "CustomRoot";
    xRoot.Namespace = "http://www.cpandl.com";
    xRoot.IsNullable = true;
     
    // Construct the XmlSerializer with the XmlRootAttribute.
    XmlSerializer serializer = new XmlSerializer
        (typeof(OrderedItem),xRoot);
     
    // Create an instance of the object to serialize.
    OrderedItem i = new OrderedItem();
    // Insert code to set properties of the ordered item.
     
    // Writing the document requires a TextWriter.
    TextWriter writer = new StreamWriter(filename);
     
    serializer.Serialize(writer, i);
    writer.Close();
}

private void DeserializeObject(string filename) {
    // Create an XmlRootAttribute, and set its properties.
    XmlRootAttribute xRoot = new XmlRootAttribute();
    xRoot.ElementName = "CustomRoot";
    xRoot.Namespace = "http://www.cpandl.com";
    xRoot.IsNullable = true;
     
    XmlSerializer serializer = new XmlSerializer
        (typeof(OrderedItem),xRoot);
     
    // A FileStream is needed to read the XML document.
    FileStream fs = new FileStream(filename, FileMode.Open);
    // Deserialize the object.
    OrderedItem i = (OrderedItem) serializer.Deserialize(fs);
    // Insert code to use the object's properties and methods.
}
private:
   void SerializeObject( String^ filename )
   {
      // Create an XmlRootAttribute, and set its properties.
      XmlRootAttribute^ xRoot = gcnew XmlRootAttribute;
      xRoot->ElementName = "CustomRoot";
      xRoot->Namespace = "http://www.cpandl.com";
      xRoot->IsNullable = true;

      // Construct the XmlSerializer with the XmlRootAttribute.
      XmlSerializer^ serializer = gcnew XmlSerializer(
         OrderedItem::typeid,xRoot );

      // Create an instance of the object to serialize.
      OrderedItem^ i = gcnew OrderedItem;
      // Insert code to set properties of the ordered item.

      // Writing the document requires a TextWriter.
      TextWriter^ writer = gcnew StreamWriter( filename );
      serializer->Serialize( writer, i );
      writer->Close();
   }

   void DeserializeObject( String^ filename )
   {
      // Create an XmlRootAttribute, and set its properties.
      XmlRootAttribute^ xRoot = gcnew XmlRootAttribute;
      xRoot->ElementName = "CustomRoot";
      xRoot->Namespace = "http://www.cpandl.com";
      xRoot->IsNullable = true;

      XmlSerializer^ serializer = gcnew XmlSerializer(
         OrderedItem::typeid,xRoot );

      // A FileStream is needed to read the XML document.
      FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
      // Deserialize the object.
      OrderedItem^ i = dynamic_cast<OrderedItem^>(serializer->Deserialize( fs ));
      // Insert code to use the object's properties and methods.
   }
private void SerializeObject(String filename)
{
    // Create an XmlRootAttribute, and set its properties.
    XmlRootAttribute xRoot = new XmlRootAttribute();
    xRoot.set_ElementName("CustomRoot");
    xRoot.set_Namespace("http://www.cpandl.com");
    xRoot.set_IsNullable(true);

    // Construct the XmlSerializer with the XmlRootAttribute.
    XmlSerializer serializer =
        new XmlSerializer(OrderedItem.class.ToType(), xRoot);

    // Create an instance of the object to serialize.
    OrderedItem i = new OrderedItem();

    // Insert code to set properties of the ordered item.
    // Writing the document requires a TextWriter.
    TextWriter writer = new StreamWriter(filename);
    serializer.Serialize(writer, i);
    writer.Close();
} //SerializeObject

private void DeserializeObject(String filename)
{
    // Create an XmlRootAttribute, and set its properties.
    XmlRootAttribute xRoot = new XmlRootAttribute();
    xRoot.set_ElementName("CustomRoot");
    xRoot.set_Namespace("http://www.cpandl.com");
    xRoot.set_IsNullable(true);

    XmlSerializer serializer =
        new XmlSerializer(OrderedItem.class.ToType(), xRoot);

    // A FileStream is needed to read the XML document.
    FileStream fs = new FileStream(filename, FileMode.Open);

    // Deserialize the object.
    OrderedItem i = (OrderedItem)serializer.Deserialize(fs);
    // Insert code to use the object's properties and methods.
} //DeserializeObject

プラットフォーム

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。

バージョン情報

.NET Framework

サポート対象 : 2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 2.0

参照

関連項目

XmlSerializer クラス
XmlSerializer メンバ
System.Xml.Serialization 名前空間
XmlAttributes クラス

その他の技術情報

XML シリアル化の概要
方法 : XML ストリームの代替要素名を指定する
属性を使用した XML シリアル化の制御
XML シリアル化の例
XML スキーマ定義ツール (Xsd.exe)