次の方法で共有


XmlElementAttribute.Type プロパティ

XML 要素を表すために使用されるオブジェクト型を取得または設定します。

Public Property Type As Type
[C#]
public Type Type {get; set;}
[C++]
public: __property Type* get_Type();public: __property void set_Type(Type*);
[JScript]
public function get Type() : Type;public function set Type(Type);

プロパティ値

メンバの Type

解説

Type プロパティを使用して、フィールドまたはプロパティの派生型を指定します。

フィールドまたはプロパティが ArrayList を返す場合は、そのメンバに XmlElementAttribute の複数のインスタンスを適用できます。各インスタンスの Type プロパティに、配列に挿入できるオブジェクトの型を設定します。

使用例

[Visual Basic, C#, C++] Type プロパティを使用して XmlElementAttribute の派生オブジェクトを指定する例を次に示します。また、この例では、 ArrayList を返すフィールドに XmlElementAttribute の 3 つのインスタンスも適用します。各インスタンスは、フィールドで使用できる型を指定します。

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


Public Class Group
    <XmlElement(GetType(Manager))> _    
    Public Staff() As Employee
    
    <XmlElement(GetType(Integer)), _
     XmlElement(GetType(String)), _
     XmlElement(GetType(DateTime))> _
    Public ExtraInfo As ArrayList
End Class

Public Class Employee
    Public Name As String
End Class

Public Class Manager
    Inherits Employee
    Public Level As Integer
End Class

Public Class Run
    
    Public Shared Sub Main()
        Dim test As New Run()
        test.SerializeObject("TypeEx.xml")
    End Sub    
    
    Public Sub SerializeObject(filename As String)
        ' Create an XmlSerializer instance.
        Dim xSer As New XmlSerializer(GetType(Group))
        
        ' Create an object and serialize it.
        Dim myGroup As New Group()
        
        Dim e1 As New Manager()
        e1.Name = "Manager1"
        Dim m1 As New Manager()
        m1.Name = "Manager2"
        m1.Level = 4
        
        Dim emps() As Employee = {e1, m1}
        myGroup.Staff = emps
        
        myGroup.ExtraInfo = New ArrayList()
        myGroup.ExtraInfo.Add(".NET")
        myGroup.ExtraInfo.Add(42)
        myGroup.ExtraInfo.Add(New DateTime(2001, 1, 1))
        
        Dim writer As New StreamWriter(filename)
        xSer.Serialize(writer, myGroup)
        writer.Close()
    End Sub
End Class


[C#] 
using System;
using System.Collections;
using System.IO;
using System.Xml;
using System.Xml.Serialization;

public class Group
{
   [XmlElement(typeof(Manager))]
   public Employee [] Staff;

   [XmlElement (typeof(int)),
   XmlElement (typeof(string)),
   XmlElement (typeof(DateTime))]
   public ArrayList ExtraInfo;
}

public class Employee
{
   public string Name;
}

public class Manager:Employee
{
   public int Level;
}

public class Run 
{
   public static void Main()
   {
      Run test = new Run();
      test.SerializeObject("TypeEx.xml");
   }

   public void SerializeObject(string filename)
   {
      // Create an XmlSerializer instance.
      XmlSerializer xSer = 
      new XmlSerializer(typeof(Group));

      // Create object and serialize it.
      Group myGroup = new Group();
      
      Manager e1 = new Manager();
      e1.Name = "Manager1";
      Manager m1 =  new Manager();
      m1.Name = "Manager2";
      m1.Level = 4;

      Employee[] emps = {e1, m1};
      myGroup.Staff = emps;

      myGroup.ExtraInfo = new ArrayList();
      myGroup.ExtraInfo.Add(".NET");
      myGroup.ExtraInfo.Add(42);
      myGroup.ExtraInfo.Add(new DateTime(2001,1,1));
      
      TextWriter writer = new StreamWriter(filename);
      xSer.Serialize(writer, myGroup);
      writer.Close();
   }
}


[C++] 
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Collections;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Serialization;

public __gc class Employee
{
public:
   String* Name;
};

public __gc class Manager: public Employee
{
public:
   int Level;
};

public __gc class Group
{
public:
   [XmlElement(__typeof(Manager))]
   Employee* Staff[];

public:
   [XmlElement (__typeof(Int32)),
      XmlElement (__typeof(String)),
      XmlElement (__typeof(DateTime))]
   ArrayList* ExtraInfo;
};

void SerializeObject(String* filename)
{
   // Create an XmlSerializer instance.
   XmlSerializer* xSer = 
      new XmlSerializer(__typeof(Group));

   // Create object and serialize it.
   Group* myGroup = new Group();

   Manager* e1 = new Manager();
   e1->Name = S"Manager1";
   Manager* m1 =  new Manager();
   m1->Name = S"Manager2";
   m1->Level = 4;

   Employee* emps[] = {e1, m1};
   myGroup->Staff = emps;

   myGroup->ExtraInfo = new ArrayList();
   myGroup->ExtraInfo->Add(S".NET");
   myGroup->ExtraInfo->Add(__box(42));
   myGroup->ExtraInfo->Add(__box(DateTime(2001,1,1)));

   TextWriter* writer = new StreamWriter(filename);
   xSer->Serialize(writer, myGroup);
   writer->Close();
}

int main()
{
   SerializeObject(S"TypeEx.xml");
}

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET

参照

XmlElementAttribute クラス | XmlElementAttribute メンバ | System.Xml.Serialization 名前空間