XmlSerializer.FromTypes(Type[]) メソッド

定義

型の配列から作成された、XmlSerializer オブジェクトの配列を返します。

public:
 static cli::array <System::Xml::Serialization::XmlSerializer ^> ^ FromTypes(cli::array <Type ^> ^ types);
public static System.Xml.Serialization.XmlSerializer[] FromTypes (Type[] types);
public static System.Xml.Serialization.XmlSerializer[] FromTypes (Type[]? types);
static member FromTypes : Type[] -> System.Xml.Serialization.XmlSerializer[]
Public Shared Function FromTypes (types As Type()) As XmlSerializer()

パラメーター

types
Type[]

Type オブジェクトの配列。

戻り値

XmlSerializer[]

XmlSerializer オブジェクトの配列。

次の例では、メソッドを FromTypes 使用してオブジェクトの XmlSerializer 配列を返します。 このコードには、オブジェクトの配列 Type を作成するためにそれぞれ使用される 3 つのクラス定義が含まれています。

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

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

/* Three classes are included here. Each one will
be used to create three XmlSerializer objects. */
public ref class Instrument
{
public:
   String^ InstrumentName;
};

public ref class Player
{
public:
   String^ PlayerName;
};

public ref class Piece
{
public:
   String^ PieceName;
};

void GetSerializers()
{
   // Create an array of types.
   array<Type^>^types = gcnew array<Type^>(3);
   types[ 0 ] = Instrument::typeid;
   types[ 1 ] = Player::typeid;
   types[ 2 ] = Piece::typeid;

   // Create an array for XmlSerializer objects.
   array<XmlSerializer^>^serializers = gcnew array<XmlSerializer^>(3);
   serializers = XmlSerializer::FromTypes( types );

   // Create one Instrument and serialize it.
   Instrument^ i = gcnew Instrument;
   i->InstrumentName = "Piano";

   // Create a TextWriter to write with.
   TextWriter^ writer = gcnew StreamWriter( "Inst.xml" );
   serializers[ 0 ]->Serialize( writer, i );
   writer->Close();
}

int main()
{
   GetSerializers();
}
using System;
using System.IO;
using System.Xml.Serialization;

/* Three classes are included here. Each one will
be used to create three XmlSerializer objects. */

public class Instrument
{
   public string InstrumentName;
}

public class Player
{
   public string PlayerName;
}

public class Piece
{
   public string PieceName;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.GetSerializers();
   }

   public void GetSerializers()
   {
      // Create an array of types.
      Type[]types = new Type[3];
      types[0] = typeof(Instrument);
      types[1] = typeof(Player);
      types[2] = typeof(Piece);

      // Create an array for XmlSerializer objects.
      XmlSerializer[]serializers= new XmlSerializer[3];
      serializers = XmlSerializer.FromTypes(types);
      // Create one Instrument and serialize it.
      Instrument i = new Instrument();
      i.InstrumentName = "Piano";
      // Create a TextWriter to write with.
      TextWriter writer = new StreamWriter("Inst.xml");
      serializers[0].Serialize(writer,i);
      writer.Close();
   }
}
Imports System.IO
Imports System.Xml.Serialization


' Three classes are included here. Each one will
' be used to create three XmlSerializer objects. 

Public Class Instrument
    Public InstrumentName As String
End Class

Public Class Player
    Public PlayerName As String
End Class

Public Class Piece
    Public PieceName As String
End Class

Public Class Test
    
    Public Shared Sub Main()
        Dim t As New Test()
        t.GetSerializers()
    End Sub    
    
    Public Sub GetSerializers()
        ' Create an array of types.
        Dim types(3) As Type
        types(0) = GetType(Instrument)
        types(1) = GetType(Player)
        types(2) = GetType(Piece)
        
        ' Create an array for XmlSerializer objects.
        Dim serializers(3) As XmlSerializer
        serializers = XmlSerializer.FromTypes(types)
        ' Create one Instrument and serialize it.
        Dim i As New Instrument()
        i.InstrumentName = "Piano"
        ' Create a TextWriter to write with.
        Dim writer As New StreamWriter("Inst.xml")
        serializers(0).Serialize(writer, i)
        writer.Close()
    End Sub
End Class

注釈

このFromTypesメソッドを使用すると、オブジェクトの配列を処理するためのオブジェクトのXmlSerializerType配列を効率的に作成できます。 ただし、このメソッドを繰り返し呼び出す場合は、呼び出し元が返されたシリアライザーをキャッシュすることをお勧めします。

適用対象

こちらもご覧ください