Freigeben über


XmlArrayItemAttribute-Konstruktor ()

Initialisiert eine neue Instanz der XmlArrayItemAttribute-Klasse.

Namespace: System.Xml.Serialization
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Sub New
'Usage
Dim instance As New XmlArrayItemAttribute
public XmlArrayItemAttribute ()
public:
XmlArrayItemAttribute ()
public XmlArrayItemAttribute ()
public function XmlArrayItemAttribute ()

Beispiel

Im folgenden Beispiel wird eine Klasse mit der Bezeichnung Transportation serialisiert, die ein Feld mit der Bezeichnung MyVehicles enthält. Dieses Feld gibt ein Array von Vehicle-Objekten zurück. Im Beispiel wird XmlArrayItemAttribute dem Feld zugewiesen, wodurch XmlSerializer Instanzen der Car-Klasse in das Array einfügen kann, die von der Vehicle-Klasse abgeleitet ist.

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

Plattformen

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

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlArrayItemAttribute-Klasse
XmlArrayItemAttribute-Member
System.Xml.Serialization-Namespace