XmlArrayItemAttribute コンストラクタ ()
アセンブリ: System.Xml (system.xml.dll 内)


Vehicle オブジェクトの配列を返す MyVehicles というフィールドがある Transportation というクラスをシリアル化する例を次に示します。この例では、XmlArrayItemAttribute をフィールドに適用し、Vehicle クラスから派生した Car クラスのインスタンスを XmlSerializer が配列に挿入できるようにします。
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Public Class Vehicle Public id As String End Class Public Class Car Inherits Vehicle Public Maker As String End Class Public Class Transportation <XmlArrayItem(), _ XmlArrayItem(GetType(Car), ElementName := "Automobile")> _ Public MyVehicles() As Vehicle End Class Public Class Run Public Shared Sub Main() Dim test As New Run() test.SerializeObject("XmlArrayItem1.xml") test.DeserializeObject("XmlArrayItem1.xml") End Sub Private Sub SerializeObject(ByVal filename As String) ' Creates an XmlSerializer for the Transportation class. Dim MySerializer As New XmlSerializer(GetType(Transportation)) ' Writing the XML file to disk requires a TextWriter. Dim myTextWriter As New StreamWriter(filename) ' Creates the object to serialize. Dim myTransportation As New Transportation() ' Creates objects to add to the array. Dim myVehicle As New Vehicle() myVehicle.id = "A12345" Dim myCar As New Car() myCar.id = "Car 34" myCar.Maker = "FamousCarMaker" myTransportation.MyVehicles = New Vehicle() {myVehicle, myCar} ' Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation) myTextWriter.Close() End Sub Private Sub DeserializeObject(ByVal filename As String) ' Create an XmlSerializer instance. Dim mySerializer As New XmlSerializer(GetType(Transportation)) Dim myFileStream As New FileStream(filename, FileMode.Open) Dim myTransportation As Transportation = _ CType(mySerializer.Deserialize(myFileStream), Transportation) Dim i As Integer For i = 0 To myTransportation.MyVehicles.Length - 1 Console.WriteLine(myTransportation.MyVehicles(i).id) Next i End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; public class Vehicle { public string id; } public class Car:Vehicle { public string Maker; } public class Transportation { [XmlArrayItem(), XmlArrayItem(typeof(Car), ElementName = "Automobile")] public Vehicle[] MyVehicles; } public class Run { public static void Main() { Run test = new Run(); test.SerializeObject("XmlArrayItem1.xml"); test.DeserializeObject("XmlArrayItem1.xml"); } private void SerializeObject(string filename){ // Creates an XmlSerializer for the Transportation class. XmlSerializer MySerializer = new XmlSerializer(typeof(Transportation)); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(filename); // Creates the object to serialize. Transportation myTransportation = new Transportation(); // Creates objects to add to the array. Vehicle myVehicle= new Vehicle() ; myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.Maker = "FamousCarMaker"; myTransportation.MyVehicles = new Vehicle[2] {myVehicle, myCar}; // Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } private void DeserializeObject(string filename) { // Creates an XmlSerializer instance. XmlSerializer mySerializer = new XmlSerializer(typeof(Transportation)); FileStream myFileStream = new FileStream(filename,FileMode.Open); Transportation myTransportation = (Transportation) mySerializer.Deserialize(myFileStream); for(int i = 0; i < myTransportation.MyVehicles.Length;i++) { Console.WriteLine(myTransportation.MyVehicles[i].id); } } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; public ref class Vehicle { public: String^ id; }; public ref class Car: public Vehicle { public: String^ Maker; }; public ref class Transportation { public: [XmlArrayItem, XmlArrayItem(Car::typeid,ElementName="Automobile")] array<Vehicle^>^MyVehicles; }; void SerializeObject( String^ filename ) { // Creates an XmlSerializer for the Transportation class. XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); // Writing the XML file to disk requires a TextWriter. TextWriter^ myTextWriter = gcnew StreamWriter( filename ); // Creates the object to serialize. Transportation^ myTransportation = gcnew Transportation; // Creates objects to add to the array. Vehicle^ myVehicle = gcnew Vehicle; myVehicle->id = "A12345"; Car^ myCar = gcnew Car; myCar->id = "Car 34"; myCar->Maker = "FamousCarMaker"; array<Vehicle^>^temp = {myVehicle,myCar}; myTransportation->MyVehicles = temp; // Serializes the object, and closes the StreamWriter. MySerializer->Serialize( myTextWriter, myTransportation ); myTextWriter->Close(); } void DeserializeObject( String^ filename ) { // Creates an XmlSerializer instance. XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); Transportation^ myTransportation = dynamic_cast<Transportation^>(mySerializer->Deserialize( myFileStream )); for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) { Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); } } int main() { SerializeObject( "XmlArrayItem1.xml" ); DeserializeObject( "XmlArrayItem1.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; public class Vehicle { public String id; } //Vehicle public class Car extends Vehicle { public String maker; } //Car public class Transportation { /** @attribute XmlArrayItem() @attribute XmlArrayItem(Car.class, ElementName = "Automobile") */ public Vehicle myVehicles[]; } //Transportation public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeObject("XmlArrayItem1.xml"); test.DeserializeObject("XmlArrayItem1.xml"); } //main private void SerializeObject(String fileName) { // Creates an XmlSerializer for the Transportation class. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(fileName); // Creates the object to serialize. Transportation myTransportation = new Transportation(); // Creates objects to add to the array. Vehicle myVehicle = new Vehicle(); myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.maker = "FamousCarMaker"; myTransportation.myVehicles = new Vehicle[] { myVehicle, myCar }; // Serializes the object, and closes the StreamWriter. mySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } //SerializeObject private void DeserializeObject(String fileName) { // Creates an XmlSerializer instance. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); FileStream myFileStream = new FileStream(fileName, FileMode.Open); Transportation myTransportation = (Transportation)mySerializer.Deserialize(myFileStream); for (int i = 0; i < myTransportation.myVehicles.length; i++) { Console.WriteLine(myTransportation.myVehicles[i].id); } } //DeserializeObject } //Run

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlArrayItemAttribute コンストラクタ (String, Type)
アセンブリ: System.Xml (system.xml.dll 内)

Dim elementName As String Dim type As Type Dim instance As New XmlArrayItemAttribute(elementName, type)

このオーバーロードは、ElementName プロパティと Type プロパティを設定します。
生成された XML 要素の名前をメンバの識別子と異なる名前にする場合は、このオーバーロードを使用します。
名前空間がある XML ドキュメントでは、1 つの要素名の複数バージョンを保持できます。詳細については、ElementName プロパティのトピックを参照してください。

Vehicle オブジェクトの配列を返す MyVehicles というフィールドがある Transportation というクラスをシリアル化する例を次に示します。この例では、XmlArrayItemAttribute をフィールドに適用し、Vehicle クラスから派生した Car クラスのインスタンスを XmlSerializer が配列に挿入できるようにします。属性を適用するときに、この例では elementName パラメータを使用して ElementName プロパティを設定し、type パラメータを使用して Type プロパティを設定しています。
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Public Class Vehicle Public id As String End Class Public Class Car Inherits Vehicle Public Maker As String End Class Public Class Transportation <XmlArray(), _ XmlArrayItem("Transport", GetType(Vehicle)), _ XmlArrayItem("Automobile", GetType(Car))> _ Public MyVehicles() As Vehicle End Class Public Class Run Public Shared Sub Main() Dim test As New Run() test.SerializeObject("XmlArrayItem4.xml") test.DeserializeObject("XmlArrayItem4.xml") End Sub Private Sub SerializeObject(ByVal filename As String) ' Creates an XmlSerializer for the Transportation class. Dim MySerializer As New XmlSerializer(GetType(Transportation)) ' Writing the XML file to disk requires a TextWriter. Dim myTextWriter As New StreamWriter(filename) Dim myTransportation As New Transportation() Dim myVehicle As New Vehicle() myVehicle.id = "A12345" Dim myCar As New Car() myCar.id = "Car 34" myCar.Maker = "FamousCarMaker" Dim myVehicles() As Vehicle = {myVehicle, myCar} myTransportation.MyVehicles = myVehicles ' Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation) myTextWriter.Close() End Sub Private Sub DeserializeObject(ByVal filename As String) ' Creates an XmlSerializer. Dim mySerializer As New XmlSerializer(GetType(Transportation)) Dim myFileStream As New FileStream(filename, FileMode.Open) Dim myTransportation As Transportation = _ CType(mySerializer.Deserialize(myFileStream), Transportation) Dim i As Integer For i = 0 To myTransportation.MyVehicles.Length - 1 Console.WriteLine(myTransportation.MyVehicles(i).id) Next i End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; public class Vehicle { public string id; } public class Car:Vehicle { public string Maker; } public class Transportation { [XmlArray] [XmlArrayItem("Transport", typeof(Vehicle)), XmlArrayItem("Automobile", typeof(Car))] public Vehicle[] MyVehicles; } public class Run { public static void Main() { Run test= new Run(); test.SerializeObject("XmlArrayItem4.xml"); test.DeserializeObject("XmlArrayItem4.xml"); } private void SerializeObject(string filename) { // Creates an XmlSerializer for the Transportation class. XmlSerializer MySerializer = new XmlSerializer(typeof(Transportation)); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(filename); Transportation myTransportation = new Transportation(); Vehicle myVehicle= new Vehicle() ; myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.Maker = "FamousCarMaker"; Vehicle [] myVehicles = {myVehicle, myCar}; myTransportation.MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } private void DeserializeObject(string filename) { // Creates an XmlSerializer. XmlSerializer mySerializer = new XmlSerializer(typeof(Transportation)); FileStream myFileStream = new FileStream(filename,FileMode.Open); Transportation myTransportation = (Transportation) mySerializer.Deserialize(myFileStream); for(int i = 0;i < myTransportation.MyVehicles.Length;i++) { Console.WriteLine(myTransportation.MyVehicles[i].id); } } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; public ref class Vehicle { public: String^ id; }; public ref class Car: public Vehicle { public: String^ Maker; }; public ref class Transportation { public: [XmlArray] [XmlArrayItem("Transport",Vehicle::typeid), XmlArrayItem("Automobile",Car::typeid)] array<Vehicle^>^MyVehicles; }; void SerializeObject( String^ filename ) { // Creates an XmlSerializer for the Transportation class. XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); // Writing the XML file to disk requires a TextWriter. TextWriter^ myTextWriter = gcnew StreamWriter( filename ); Transportation^ myTransportation = gcnew Transportation; Vehicle^ myVehicle = gcnew Vehicle; myVehicle->id = "A12345"; Car^ myCar = gcnew Car; myCar->id = "Car 34"; myCar->Maker = "FamousCarMaker"; array<Vehicle^>^myVehicles = {myVehicle,myCar}; myTransportation->MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer->Serialize( myTextWriter, myTransportation ); myTextWriter->Close(); } void DeserializeObject( String^ filename ) { // Creates an XmlSerializer. XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); Transportation^ myTransportation = dynamic_cast<Transportation^>(mySerializer->Deserialize( myFileStream )); for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) { Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); } } int main() { SerializeObject( "XmlArrayItem4.xml" ); DeserializeObject( "XmlArrayItem4.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; public class Vehicle { public String id; } //Vehicle public class Car extends Vehicle { public String maker; } //Car public class Transportation { /** @attribute XmlArray() */ /** @attribute XmlArrayItem("Transport", Vehicle.class) @attribute XmlArrayItem("Automobile", Car.class) */ public Vehicle myVehicles[]; } //Transportation public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeObject("XmlArrayItem4.xml"); test.DeserializeObject("XmlArrayItem4.xml"); } //main private void SerializeObject(String fileName) { // Creates an XmlSerializer for the Transportation class. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(fileName); Transportation myTransportation = new Transportation(); Vehicle myVehicle = new Vehicle(); myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.maker = "FamousCarMaker"; Vehicle myVehiclesObj[] = { myVehicle, myCar }; myTransportation.myVehicles = myVehiclesObj; // Serializes the object, and closes the StreamWriter. mySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } //SerializeObject private void DeserializeObject(String fileName) { // Creates an XmlSerializer. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); FileStream myFileStream = new FileStream(fileName, FileMode.Open); Transportation myTransportation = (Transportation)mySerializer.Deserialize(myFileStream); for (int i = 0; i < myTransportation.myVehicles.length; i++) { Console.WriteLine(myTransportation.myVehicles[i].id); } } //DeserializeObject } //Run

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlArrayItemAttribute コンストラクタ (Type)
アセンブリ: System.Xml (system.xml.dll 内)


Vehicle オブジェクトの配列を返す MyVehicles というフィールドがある Transportation というクラスをシリアル化する例を次に示します。この例では、XmlArrayItemAttribute をフィールドに適用し、Vehicle クラスから派生した Car クラスのインスタンスを XmlSerializer が配列に挿入できるようにします。属性を適用するときに、この例では type パラメータを使用して Type プロパティを設定しています。
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Public Class Vehicle Public id As String End Class Public Class Car Inherits Vehicle Public Maker As String End Class Public Class Transportation <XmlArrayItem(GetType(Vehicle)), _ XmlArrayItem(GetType(Car))> _ Public MyVehicles() As Vehicle End Class Public Class Run Public Shared Sub Main() Dim test As New Run() test.SerializeObject("XmlArrayItem3.xml") test.DeserializeObject("XmlArrayItem3.xml") End Sub Private Sub SerializeObject(ByVal filename As String) ' Creates an XmlSerializer object. Dim MySerializer As New XmlSerializer(GetType(Transportation)) ' Writing the XML file to disk requires a TextWriter. Dim myTextWriter As New StreamWriter(filename) Dim myTransportation As New Transportation() Dim myVehicle As New Vehicle() myVehicle.id = "A12345" Dim myCar As New Car() myCar.id = "Car 34" myCar.Maker = "FamousCarMaker" Dim myVehicles() As Vehicle = {myVehicle, myCar} myTransportation.MyVehicles = myVehicles ' Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation) myTextWriter.Close() End Sub Private Sub DeserializeObject(ByVal filename As String) ' Creates the serializer with the type to deserialize. Dim mySerializer As New XmlSerializer(GetType(Transportation)) Dim myFileStream As New FileStream(filename, FileMode.Open) Dim myTransportation As Transportation = _ CType(mySerializer.Deserialize(myFileStream), Transportation) Dim i As Integer For i = 0 To myTransportation.MyVehicles.Length - 1 Console.WriteLine(myTransportation.MyVehicles(i).id) Next i End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; public class Vehicle { public string id; } public class Car:Vehicle { public string Maker; } public class Transportation { [XmlArrayItem(typeof(Vehicle)), XmlArrayItem(typeof(Car))] public Vehicle[] MyVehicles; } public class Run { public static void Main() { Run test= new Run(); test.SerializeObject("XmlArrayItem3.xml"); test.DeserializeObject("XmlArrayItem3.xml"); } private void SerializeObject(string filename) { // Creates an XmlSerializer. XmlSerializer MySerializer = new XmlSerializer(typeof(Transportation)); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(filename); Transportation myTransportation = new Transportation(); Vehicle myVehicle= new Vehicle() ; myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.Maker = "FamousCarMaker"; Vehicle [] myVehicles = {myVehicle, myCar}; myTransportation.MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } private void DeserializeObject(string filename) { // Creates the serializer with the type to deserialize. XmlSerializer mySerializer = new XmlSerializer(typeof(Transportation)); FileStream myFileStream = new FileStream(filename,FileMode.Open); Transportation myTransportation = (Transportation) mySerializer.Deserialize(myFileStream); for(int i = 0;i < myTransportation.MyVehicles.Length;i++) { Console.WriteLine(myTransportation.MyVehicles[i].id); } } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; public ref class Vehicle { public: String^ id; }; public ref class Car: public Vehicle { public: String^ Maker; }; public ref class Transportation { public: [XmlArrayItem(Vehicle::typeid), XmlArrayItem(Car::typeid)] array<Vehicle^>^MyVehicles; }; void SerializeObject( String^ filename ) { // Creates an XmlSerializer. XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); // Writing the XML file to disk requires a TextWriter. TextWriter^ myTextWriter = gcnew StreamWriter( filename ); Transportation^ myTransportation = gcnew Transportation; Vehicle^ myVehicle = gcnew Vehicle; myVehicle->id = "A12345"; Car^ myCar = gcnew Car; myCar->id = "Car 34"; myCar->Maker = "FamousCarMaker"; array<Vehicle^>^myVehicles = {myVehicle,myCar}; myTransportation->MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer->Serialize( myTextWriter, myTransportation ); myTextWriter->Close(); } void DeserializeObject( String^ filename ) { // Creates the serializer with the type to deserialize. XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); Transportation^ myTransportation = dynamic_cast<Transportation^>(mySerializer->Deserialize( myFileStream )); for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) { Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); } } int main() { SerializeObject( "XmlArrayItem3.xml" ); DeserializeObject( "XmlArrayItem3.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; public class Vehicle { public String id; } //Vehicle public class Car extends Vehicle { public String maker; } //Car public class Transportation { /** @attribute XmlArrayItem(Vehicle.class) @attribute XmlArrayItem(Car.class) */ public Vehicle myVehicles[]; } //Transportation public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeObject("XmlArrayItem3.xml"); test.DeserializeObject("XmlArrayItem3.xml"); } //main private void SerializeObject(String fileName) { // Creates an XmlSerializer. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(fileName); Transportation myTransportation = new Transportation(); Vehicle myVehicle = new Vehicle(); myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.maker = "FamousCarMaker"; Vehicle myVehiclesObj[] = { myVehicle, myCar }; myTransportation.myVehicles = myVehiclesObj; // Serializes the object, and closes the StreamWriter. mySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } //SerializeObject private void DeserializeObject(String fileName) { // Creates the serializer with the type to deserialize. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); FileStream myFileStream = new FileStream(fileName, FileMode.Open); Transportation myTransportation = (Transportation)mySerializer.Deserialize(myFileStream); for (int i = 0; i < myTransportation.myVehicles.length; i++) { Console.WriteLine(myTransportation.myVehicles[i].id); } } //DeserializeObject } //Run

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlArrayItemAttribute コンストラクタ

名前 | 説明 |
---|---|
XmlArrayItemAttribute () | XmlArrayItemAttribute クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
XmlArrayItemAttribute (String) | XmlArrayItemAttribute クラスの新しいインスタンスを初期化し、XML ドキュメントで生成される XML 要素の名前を指定します。 .NET Compact Framework によってサポートされています。 |
XmlArrayItemAttribute (Type) | XmlArrayItemAttribute クラスの新しいインスタンスを初期化し、シリアル化された配列に挿入できる Type を指定します。 .NET Compact Framework によってサポートされています。 |
XmlArrayItemAttribute (String, Type) | XmlArrayItemAttribute クラスの新しいインスタンスを初期化し、XML ドキュメントで生成された XML 要素の名前、および生成された XML ドキュメントに挿入できる Type を指定します。 .NET Compact Framework によってサポートされています。 |

XmlArrayItemAttribute コンストラクタ (String)
アセンブリ: System.Xml (system.xml.dll 内)


このオーバーロードは ElementName プロパティを設定します。
生成された XML 要素の名前をメンバの識別子と異なる名前にする場合は、このオーバーロードを使用します。
名前空間がある XML ドキュメントでは、1 つの要素名の複数バージョンを保持できます。詳細については、ElementName プロパティのトピックを参照してください。

Vehicle オブジェクトの配列を返す MyVehicles というフィールドがある Transportation というクラスをシリアル化する例を次に示します。この例では、XmlArrayItemAttribute をフィールドに適用し、Vehicle クラスから派生した Car クラスのインスタンスを XmlSerializer が配列に挿入できるようにします。属性を適用するときに、この例では elementName パラメータを使用して ElementName プロパティを設定しています。
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Imports System.Xml.Serialization Public Class Vehicle Public id As String End Class Public Class Car Inherits Vehicle Public Maker As String End Class Public Class Transportation <XmlArrayItem(ElementName := "Transportation"), _ XmlArrayItem(GetType(Car), ElementName := "Automobile")> _ Public MyVehicles() As Vehicle End Class Public Class Run Public Shared Sub Main() Dim test As New Run() test.SerializeObject("XmlArrayItem2.xml") test.DeserializeObject("XmlArrayItem2.xml") End Sub Private Sub SerializeObject(ByVal filename As String) ' Creates an XmlSerializer for the Transportation class. Dim MySerializer As New XmlSerializer(GetType(Transportation)) ' Writing the XML file to disk requires a TextWriter. Dim myTextWriter As New StreamWriter(filename) Dim myTransportation As New Transportation() Dim myVehicle As New Vehicle() myVehicle.id = "A12345" Dim myCar As New Car() myCar.id = "Car 34" myCar.Maker = "FamousCarMaker" Dim myVehicles() As Vehicle = {myVehicle, myCar} myTransportation.MyVehicles = myVehicles ' Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation) myTextWriter.Close() End Sub Private Sub DeserializeObject(ByVal filename As String) ' Create the serializer with the type to deserialize. Dim mySerializer As New XmlSerializer(GetType(Transportation)) Dim myFileStream As New FileStream(filename, FileMode.Open) Dim myTransportation As Transportation = _ CType(mySerializer.Deserialize(myFileStream), Transportation) Dim i As Integer For i = 0 To myTransportation.MyVehicles.Length - 1 Console.WriteLine(myTransportation.MyVehicles(i).id) Next i End Sub End Class
using System; using System.IO; using System.Xml; using System.Xml.Serialization; public class Vehicle { public string id; } public class Car:Vehicle { public string Maker; } public class Transportation { [XmlArrayItem(ElementName = "Transportation"), XmlArrayItem(typeof(Car), ElementName = "Automobile")] public Vehicle[] MyVehicles; } public class Run { public static void Main() { Run test= new Run(); test.SerializeObject("XmlArrayItem2.xml"); test.DeserializeObject("XmlArrayItem2.xml"); } private void SerializeObject(string filename) { // Creates an XmlSerializer for the Transportation class. XmlSerializer MySerializer = new XmlSerializer(typeof(Transportation)); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(filename); Transportation myTransportation = new Transportation(); Vehicle myVehicle= new Vehicle() ; myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.Maker = "FamousCarMaker"; Vehicle [] myVehicles = {myVehicle, myCar}; myTransportation.MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } private void DeserializeObject(string filename) { // Creates the serializer with the type to deserialize. XmlSerializer mySerializer = new XmlSerializer(typeof(Transportation)); FileStream myFileStream = new FileStream(filename,FileMode.Open); Transportation myTransportation = (Transportation) mySerializer.Deserialize(myFileStream); for(int i = 0;i < myTransportation.MyVehicles.Length;i++) { Console.WriteLine(myTransportation.MyVehicles[i].id); } } }
#using <System.Xml.dll> #using <System.dll> using namespace System; using namespace System::IO; using namespace System::Xml; using namespace System::Xml::Serialization; public ref class Vehicle { public: String^ id; }; public ref class Car: public Vehicle { public: String^ Maker; }; public ref class Transportation { public: [XmlArrayItem(ElementName="Transportation"), XmlArrayItem(Car::typeid,ElementName="Automobile")] array<Vehicle^>^MyVehicles; }; void SerializeObject( String^ filename ) { // Creates an XmlSerializer for the Transportation class. XmlSerializer^ MySerializer = gcnew XmlSerializer( Transportation::typeid ); // Writing the XML file to disk requires a TextWriter. TextWriter^ myTextWriter = gcnew StreamWriter( filename ); Transportation^ myTransportation = gcnew Transportation; Vehicle^ myVehicle = gcnew Vehicle; myVehicle->id = "A12345"; Car^ myCar = gcnew Car; myCar->id = "Car 34"; myCar->Maker = "FamousCarMaker"; array<Vehicle^>^myVehicles = {myVehicle,myCar}; myTransportation->MyVehicles = myVehicles; // Serializes the object, and closes the StreamWriter. MySerializer->Serialize( myTextWriter, myTransportation ); myTextWriter->Close(); } void DeserializeObject( String^ filename ) { // Creates the serializer with the type to deserialize. XmlSerializer^ mySerializer = gcnew XmlSerializer( Transportation::typeid ); FileStream^ myFileStream = gcnew FileStream( filename,FileMode::Open ); Transportation^ myTransportation = dynamic_cast<Transportation^>(mySerializer->Deserialize( myFileStream )); for ( int i = 0; i < myTransportation->MyVehicles->Length; i++ ) { Console::WriteLine( myTransportation->MyVehicles[ i ]->id ); } } int main() { SerializeObject( "XmlArrayItem2.xml" ); DeserializeObject( "XmlArrayItem2.xml" ); }
import System.*; import System.IO.*; import System.Xml.*; import System.Xml.Serialization.*; public class Vehicle { public String id; } //Vehicle public class Car extends Vehicle { public String maker; } //Car public class Transportation { /** @attribute XmlArrayItem(ElementName = "Transportation") @attribute XmlArrayItem(Car.class, ElementName = "Automobile") */ public Vehicle myVehicles[]; } //Transportation public class Run { public static void main(String[] args) { Run test = new Run(); test.SerializeObject("XmlArrayItem2.xml"); test.DeserializeObject("XmlArrayItem2.xml"); } //main private void SerializeObject(String fileName) { // Creates an XmlSerializer for the Transportation class. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); // Writing the XML file to disk requires a TextWriter. TextWriter myTextWriter = new StreamWriter(fileName); Transportation myTransportation = new Transportation(); Vehicle myVehicle = new Vehicle(); myVehicle.id = "A12345"; Car myCar = new Car(); myCar.id = "Car 34"; myCar.maker = "FamousCarMaker"; Vehicle myVehiclesObj[] = { myVehicle, myCar }; myTransportation.myVehicles = myVehiclesObj; // Serializes the object, and closes the StreamWriter. mySerializer.Serialize(myTextWriter, myTransportation); myTextWriter.Close(); } //SerializeObject private void DeserializeObject(String fileName) { // Creates the serializer with the type to deserialize. XmlSerializer mySerializer = new XmlSerializer(Transportation.class.ToType()); FileStream myFileStream = new FileStream(fileName, FileMode.Open); Transportation myTransportation = (Transportation)mySerializer.Deserialize(myFileStream); for (int i = 0; i < myTransportation.myVehicles.length; i++) { Console.WriteLine(myTransportation.myVehicles[i].id); } } //DeserializeObject } //Run

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- XmlArrayItemAttribute コンストラクタ ()のページへのリンク