XmlElementAttributes Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt eine Auflistung mit XmlElementAttribute-Objekten dar, die vom XmlSerializer-Element verwendet werden, um die Standardmethode für die Serialisierung einer Klasse zu überschreiben.
public ref class XmlElementAttributes : System::Collections::IList
public ref class XmlElementAttributes : System::Collections::CollectionBase
public class XmlElementAttributes : System.Collections.IList
public class XmlElementAttributes : System.Collections.CollectionBase
type XmlElementAttributes = class
interface ICollection
interface IEnumerable
interface IList
type XmlElementAttributes = class
inherit CollectionBase
Public Class XmlElementAttributes
Implements IList
Public Class XmlElementAttributes
Inherits CollectionBase
- Vererbung
-
XmlElementAttributes
- Vererbung
- Implementiert
Beispiele
Im folgenden Beispiel wird die Transportation
-Klasse serialisiert, die ein einzelnes Feld namens Vehicles
enthält, das einen ArrayListzurückgibt. Im Beispiel werden zunächst zwei Instanzen der -Klasse auf das XmlElementAttributeVehicles
Feld angewendet, das die Objekttypen angibt, die in XmlSerializer das Array eingefügt werden. Im Beispiel werden dann zwei XmlElementAttribute -Objekte erstellt, um das Verhalten der Attribute zu überschreiben, die auf die Vehicles
-Eigenschaft angewendet werden. Die beiden überschreibenden Objekte werden der XmlElementAttributes Auflistung eines XmlAttributeshinzugefügt. Schließlich fügt das Beispiel einem XmlAttributesXmlAttributeOverrideshinzu, sodass die XmlSerializer neuen Objekttypen in die ArrayList vom Vehicles
Feld zurückgegebene einfügen können.
#using <System.Xml.dll>
#using <System.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Collections;
using namespace System::Xml;
public ref class Car
{
public:
String^ Name;
};
public ref class Plane
{
public:
String^ Name;
};
public ref class Truck
{
public:
String^ Name;
};
public ref class Train
{
public:
String^ Name;
};
public ref class Transportation
{
public:
// Override these two XmlElementAttributes.
[XmlElement(Car::typeid),
XmlElement(Plane::typeid)]
ArrayList^ Vehicles;
};
XmlSerializer^ CreateOverrider()
{
// Create XmlAtrributes and XmlAttributeOverrides instances.
XmlAttributes^ attrs = gcnew XmlAttributes;
XmlAttributeOverrides^ xOver = gcnew XmlAttributeOverrides;
/* Create an XmlElementAttributes object to override
one of the attributes applied to the Vehicles property. */
XmlElementAttribute^ xElement1 = gcnew XmlElementAttribute( Truck::typeid );
// Add the XmlElementAttribute to the collection.
attrs->XmlElements->Add( xElement1 );
/* Create a second XmlElementAttribute and
add it to the collection. */
XmlElementAttribute^ xElement2 = gcnew XmlElementAttribute( Train::typeid );
attrs->XmlElements->Add( xElement2 );
/* Add the XmlAttributes to the XmlAttributeOverrides,
specifying the member to override. */
xOver->Add( Transportation::typeid, "Vehicles", attrs );
// Create the XmlSerializer, and return it.
XmlSerializer^ xSer = gcnew XmlSerializer( Transportation::typeid,xOver );
return xSer;
}
void SerializeObject( String^ filename )
{
// Create an XmlSerializer instance.
XmlSerializer^ xSer = CreateOverrider();
// Create the object.
Transportation^ myTransportation = gcnew Transportation;
/* Create two new, overriding objects that can be
inserted into the Vehicles array. */
myTransportation->Vehicles = gcnew ArrayList;
Truck^ myTruck = gcnew Truck;
myTruck->Name = "MyTruck";
Train^ myTrain = gcnew Train;
myTrain->Name = "MyTrain";
myTransportation->Vehicles->Add( myTruck );
myTransportation->Vehicles->Add( myTrain );
TextWriter^ writer = gcnew StreamWriter( filename );
xSer->Serialize( writer, myTransportation );
}
int main()
{
SerializeObject( "OverrideElement.xml" );
}
using System;
using System.IO;
using System.Xml.Serialization;
using System.Collections;
using System.Xml;
public class Transportation
{
// Override these two XmlElementAttributes.
[XmlElement(typeof(Car)),
XmlElement(typeof(Plane))]
public ArrayList Vehicles;
}
public class Car
{
public string Name;
}
public class Plane
{
public string Name;
}
public class Truck
{
public string Name;
}
public class Train
{
public string Name;
}
public class Test
{
public static void Main()
{
Test t = new Test();
t.SerializeObject("OverrideElement.xml");
}
public XmlSerializer CreateOverrider()
{
// Create XmlAtrributes and XmlAttributeOverrides instances.
XmlAttributes attrs = new XmlAttributes();
XmlAttributeOverrides xOver =
new XmlAttributeOverrides();
/* Create an XmlElementAttributes object to override
one of the attributes applied to the Vehicles property. */
XmlElementAttribute xElement1 =
new XmlElementAttribute(typeof(Truck));
// Add the XmlElementAttribute to the collection.
attrs.XmlElements.Add(xElement1);
/* Create a second XmlElementAttribute and
add it to the collection. */
XmlElementAttribute xElement2 =
new XmlElementAttribute(typeof(Train));
attrs.XmlElements.Add(xElement2);
/* Add the XmlAttributes to the XmlAttributeOverrides,
specifying the member to override. */
xOver.Add(typeof(Transportation), "Vehicles", attrs);
// Create the XmlSerializer, and return it.
XmlSerializer xSer = new XmlSerializer
(typeof(Transportation), xOver);
return xSer;
}
public void SerializeObject(string filename)
{
// Create an XmlSerializer instance.
XmlSerializer xSer = CreateOverrider();
// Create the object.
Transportation myTransportation =
new Transportation();
/* Create two new, overriding objects that can be
inserted into the Vehicles array. */
myTransportation.Vehicles = new ArrayList();
Truck myTruck = new Truck();
myTruck.Name = "MyTruck";
Train myTrain = new Train();
myTrain.Name = "MyTrain";
myTransportation.Vehicles.Add(myTruck);
myTransportation.Vehicles.Add(myTrain);
TextWriter writer = new StreamWriter(filename);
xSer.Serialize(writer, myTransportation);
}
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Collections
Imports System.Xml
Public Class Transportation
' Override these two XmlElementAttributes.
<XmlElement(GetType(Car)), _
XmlElement(GetType(Plane))> _
Public Vehicles As ArrayList
End Class
Public Class Car
Public Name As String
End Class
Public Class Plane
Public Name As String
End Class
Public Class Truck
Public Name As String
End Class
Public Class Train
Public Name As String
End Class
Public Class Test
Public Shared Sub Main()
Dim t As New Test()
t.SerializeObject("OverrideElement.xml")
End Sub
Public Function CreateOverrider() As XmlSerializer
' Create XmlAtrributes and XmlAttributeOverrides instances.
Dim attrs As New XmlAttributes()
Dim xOver As New XmlAttributeOverrides()
' Create an XmlElementAttributes object to override
' one of the attributes applied to the Vehicles property.
Dim xElement1 As New XmlElementAttribute(GetType(Truck))
' Add the XmlElementAttribute to the collection.
attrs.XmlElements.Add(xElement1)
' Create a second XmlElementAttribute and
' add it to the collection.
Dim xElement2 As New XmlElementAttribute(GetType(Train))
attrs.XmlElements.Add(xElement2)
' Add the XmlAttributes to the XmlAttributeOverrides,
' specifying the member to override.
xOver.Add(GetType(Transportation), "Vehicles", attrs)
' Create the XmlSerializer, and return it.
Dim xSer As New XmlSerializer(GetType(Transportation), xOver)
Return xSer
End Function
Public Sub SerializeObject(ByVal filename As String)
' Create an XmlSerializer instance.
Dim xSer As XmlSerializer = CreateOverrider()
' Create the object.
Dim myTransportation As New Transportation()
' Create two new, overriding objects that can be
' inserted into the Vehicles array.
myTransportation.Vehicles = New ArrayList()
Dim myTruck As New Truck()
myTruck.Name = "MyTruck"
Dim myTrain As New Train()
myTrain.Name = "MyTrain"
myTransportation.Vehicles.Add(myTruck)
myTransportation.Vehicles.Add(myTrain)
Dim writer As New StreamWriter(filename)
xSer.Serialize(writer, myTransportation)
End Sub
End Class
Hinweise
Wird XmlElementAttributes von der XmlElements -Eigenschaft der XmlAttributes -Klasse zurückgegeben. Mithilfe der XmlAttributeOverrides -Klasse und der XmlAttributes -Klasse können Sie die Standardart überschreiben, wie eine XmlSerializer Klasse serialisiert wird.
Konstruktoren
XmlElementAttributes() |
Initialisiert eine neue Instanz der XmlElementAttributes-Klasse. |
Eigenschaften
Capacity |
Ruft die Anzahl der Elemente ab, die die CollectionBase enthalten kann, oder legt diese fest. (Geerbt von CollectionBase) |
Count |
Ruft die Anzahl der Elemente ab, die in ICollection enthalten sind. |
Count |
Ruft die Anzahl der in der CollectionBase-Instanz enthaltenen Elemente ab. Diese Eigenschaft kann nicht überschrieben werden. (Geerbt von CollectionBase) |
InnerList |
Ruft eine ArrayList mit der Liste der Elemente in der CollectionBase-Instanz ab. (Geerbt von CollectionBase) |
Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt dieses fest. |
List |
Ruft eine IList mit der Liste der Elemente in der CollectionBase-Instanz ab. (Geerbt von CollectionBase) |
Methoden
Add(XmlElementAttribute) |
Fügt der Auflistung XmlElementAttribute hinzu. |
Clear() |
Entfernt alle Elemente aus IList. |
Clear() |
Entfernt alle Objekte aus der CollectionBase-Instanz. Diese Methode kann nicht überschrieben werden. (Geerbt von CollectionBase) |
Contains(XmlElementAttribute) |
Bestimmt, ob die Auflistung das angegebene Objekt enthält. |
CopyTo(XmlElementAttribute[], Int32) |
Kopiert das XmlElementAttributes oder einen Teil davon in ein eindimensionales Array. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetEnumerator() |
Gibt einen Enumerator zurück, der eine Auflistung durchläuft. |
GetEnumerator() |
Gibt einen Enumerator zurück, der die CollectionBase durchläuft. (Geerbt von CollectionBase) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexOf(XmlElementAttribute) |
Ruft den Index der angegebenen XmlElementAttribute ab. |
Insert(Int32, XmlElementAttribute) |
Fügt XmlElementAttribute in die Auflistung ein. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnClear() |
Führt beim Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus. (Geerbt von CollectionBase) |
OnClearComplete() |
Führt nach dem Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus. (Geerbt von CollectionBase) |
OnInsert(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse vor dem Einfügen eines neuen Elements in die CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnInsertComplete(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Einfügen eines neuen Elements in die CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnRemove(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse beim Entfernen eines Elements aus der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnRemoveComplete(Int32, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Entfernen eines Elements aus der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnSet(Int32, Object, Object) |
Führt zusätzliche benutzerdefinierte Prozesse vor dem Festlegen eines Werts in der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Führt zusätzliche benutzerdefinierte Prozesse nach dem Festlegen eines Werts in der CollectionBase-Instanz aus. (Geerbt von CollectionBase) |
OnValidate(Object) |
Führt zusätzliche benutzerdefinierte Prozesse beim Validieren eines Werts aus. (Geerbt von CollectionBase) |
Remove(XmlElementAttribute) |
Entfernt das angegebene Objekt aus der Auflistung. |
RemoveAt(Int32) |
Entfernt das IList-Element am angegebenen Index. |
RemoveAt(Int32) |
Entfernt das Element am angegebenen Index aus der CollectionBase-Instanz. Diese Methode kann nicht überschrieben werden. (Geerbt von CollectionBase) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICollection.CopyTo(Array, Int32) |
Kopiert die Elemente der ICollection in ein Array, beginnend bei einem bestimmten Array-Index. |
ICollection.CopyTo(Array, Int32) |
Kopiert die gesamte CollectionBase-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays. (Geerbt von CollectionBase) |
ICollection.IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection synchronisiert (threadsicher) ist. |
ICollection.IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf die CollectionBase synchronisiert (threadsicher) ist. (Geerbt von CollectionBase) |
ICollection.SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf ICollection synchronisiert werden kann. |
ICollection.SyncRoot |
Ruft ein Objekt ab, mit dem der Zugriff auf CollectionBase synchronisiert werden kann. (Geerbt von CollectionBase) |
IList.Add(Object) |
Fügt der IList ein Element hinzu. |
IList.Add(Object) |
Fügt am Ende der CollectionBase ein Objekt hinzu. (Geerbt von CollectionBase) |
IList.Contains(Object) |
Ermittelt, ob die IList einen bestimmten Wert enthält. |
IList.Contains(Object) |
Ermittelt, ob CollectionBase ein bestimmtes Element enthält. (Geerbt von CollectionBase) |
IList.IndexOf(Object) |
Bestimmt den Index eines bestimmten Elements in der IList. |
IList.IndexOf(Object) |
Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten CollectionBase zurück. (Geerbt von CollectionBase) |
IList.Insert(Int32, Object) |
Fügt am angegebenen Index ein Element in die IList ein. |
IList.Insert(Int32, Object) |
Fügt am angegebenen Index ein Element in die CollectionBase ein. (Geerbt von CollectionBase) |
IList.IsFixedSize |
Ruft einen Wert ab, der angibt, ob das IList eine feste Größe aufweist. |
IList.IsFixedSize |
Ruft einen Wert ab, der angibt, ob das CollectionBase eine feste Größe aufweist. (Geerbt von CollectionBase) |
IList.IsReadOnly |
Ruft einen Wert ab, der angibt, ob das IList schreibgeschützt ist. |
IList.IsReadOnly |
Ruft einen Wert ab, der angibt, ob das CollectionBase schreibgeschützt ist. (Geerbt von CollectionBase) |
IList.Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt dieses fest. |
IList.Item[Int32] |
Ruft das Element am angegebenen Index ab oder legt dieses fest. (Geerbt von CollectionBase) |
IList.Remove(Object) |
Entfernt das erste Vorkommen eines angegebenen Objekts aus der IList. |
IList.Remove(Object) |
Entfernt das erste Vorkommen eines angegebenen Objekts aus der CollectionBase. (Geerbt von CollectionBase) |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |