Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Initialisiert eine neue Instanz der XmlArrayItemAttribute-Klasse und gibt den Namen des im XML-Dokument generierten XML-Elements sowie den Type an, der in das generierte XML-Dokument eingefügt werden kann.
Namespace: System.Xml.Serialization
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public Sub New ( _
elementName As String, _
type As Type _
)
'Usage
Dim elementName As String
Dim type As Type
Dim instance As New XmlArrayItemAttribute(elementName, type)
public XmlArrayItemAttribute (
string elementName,
Type type
)
public:
XmlArrayItemAttribute (
String^ elementName,
Type^ type
)
public XmlArrayItemAttribute (
String elementName,
Type type
)
public function XmlArrayItemAttribute (
elementName : String,
type : Type
)
Parameter
- elementName
Der Name des XML-Elements.
- type
Der Type des zu serialisierenden Objekts.
Hinweise
Diese Überladung legt die ElementName-Eigenschaft und die Type-Eigenschaft fest.
Verwenden Sie diese Überladung, wenn sich der Name des generierten XML-Elements von dem des Memberbezeichners unterscheiden soll.
Ein XML-Dokument, das Namespaces enthält, die mehrere Versionen eines Elementnamens enthalten können. Weitere Informationen finden Sie unter der ElementName-Klasse.
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. Beim Zuweisen des Attributs wird im Beispiel die ElementName-Eigenschaft mithilfe des elementName-Parameters und die Type-Eigenschaft mithilfe des type-Parameters festgelegt.
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
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