Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

XmlArrayItemAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Stellt ein Attribut, das angibt, die abgeleiteten Typen, die die XmlSerializer können in einem serialisierten Array platziert.

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

System.Object
  System.Attribute
    System.Xml.Serialization.XmlArrayItemAttribute

[AttributeUsageAttribute(AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Parameter | AttributeTargets.ReturnValue, 
	AllowMultiple = true)]
public class XmlArrayItemAttribute : Attribute

NameBeschreibung
System_CAPS_pubmethodXmlArrayItemAttribute()

Initialisiert eine neue Instanz der XmlArrayItemAttribute-Klasse.

System_CAPS_pubmethodXmlArrayItemAttribute(String)

Initialisiert eine neue Instanz der XmlArrayItemAttribute -Klasse und gibt den Namen des im XML-Dokument generierten XML-Elements.

System_CAPS_pubmethodXmlArrayItemAttribute(String, Type)

Initialisiert eine neue Instanz von der XmlArrayItemAttribute -Klasse und gibt den Namen des im XML-Dokument generierten XML-Elements und der Type die in das generierte XML-Dokument eingefügt werden kann.

System_CAPS_pubmethodXmlArrayItemAttribute(Type)

Initialisiert eine neue Instanz von der XmlArrayItemAttribute -Klasse und gibt die Type der in das serialisierte Array eingefügt werden können.

NameBeschreibung
System_CAPS_pubpropertyDataType

Ruft ab oder legt den XML-Datentyp des generierten XML-Elements fest.

System_CAPS_pubpropertyElementName

Ruft ab oder legt den Namen des generierten XML-Elements.

System_CAPS_pubpropertyForm

Ruft ab oder legt einen Wert, der angibt, ob der Name des generierten XML-Elements gekennzeichnet ist.

System_CAPS_pubpropertyIsNullable

Ruft ab oder legt einen Wert, der angibt, ob die XmlSerializer einen Member als leeres XML-Tag mit serialisieren muss die xsi:nil -Attributsatz zur true.

System_CAPS_pubpropertyNamespace

Ruft ab oder legt den Namespace des generierten XML-Elements.

System_CAPS_pubpropertyNestingLevel

Ruft ab oder legt sie fest in einer Hierarchie von XML-Elementen, die die XmlArrayItemAttribute auswirkt.

System_CAPS_pubpropertyType

Ruft ab oder legt den Typ in einem Array zulässig.

System_CAPS_pubpropertyTypeId

Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.)

NameBeschreibung
System_CAPS_pubmethodEquals(Object)

Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodFinalize()

Gibt einem Objekt Gelegenheit, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird. (Geerbt von „Object“.)

System_CAPS_pubmethodGetHashCode()

Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodIsDefaultAttribute()

Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.)

System_CAPS_pubmethodMatch(Object)

Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_pubmethodToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.)

NameBeschreibung
System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.GetTypeInfoCount(UInt32)

Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.)

System_CAPS_pubinterfaceSystem_CAPS_privmethod_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.)

Die XmlArrayItemAttribute gehört zu einer Familie von Attributen, die steuert, wie die XmlSerializer Serialisieren oder Deserialisieren ein Objekts. Eine vollständige Liste ähnlicher Attribute finden Sie unter Attribute zur Steuerung der XML-Serialisierung.

Sie können Anwenden der XmlArrayItemAttribute auf einen beliebigen öffentlichen Lese-/Schreib-Member, die ein Array zurückgibt oder ermöglicht den Zugriff auf eine. Z. B. ein Feld, das ein Array von Objekten, die eine Auflistung gibt ein ArrayList, oder eine beliebige Klasse, die implementiert die IEnumerable Schnittstelle.

Die XmlArrayItemAttribute unterstützt Polymorphie, das heißt, es ermöglicht die XmlSerializer in ein Array abgeleitete Objekte hinzuzufügen. Angenommen, eine Klasse namens Mammal stammt von einer Basisklasse namens Animal. Angenommen, eine Klasse mit dem Namen MyAnimals enthält ein Feld, das ein Array von zurückgibt Animal Objekte. Zu den XmlSerializer sowohl serialisiert die Animal und Mammal geben, Anwenden der XmlArrayItemAttribute in das Feld zweimal, jedes Mal einen der beiden zulässigen Typen.

System_CAPS_noteHinweis

Sie können mehrere Instanzen von Anwenden der XmlArrayItemAttribute oder XmlElementAttribute Objekttypen an, die in das Array eingefügt werden können.

System_CAPS_noteHinweis

Die Serialisierung eines Felds oder einer Eigenschaft, die eine Schnittstelle oder ein Array von Schnittstellen zurückgibt, wird nicht unterstützt.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

System_CAPS_noteHinweis

Sie können das Wort XmlArrayItem in Ihrem Code anstelle des längeren XmlArrayItemAttribute.

Im folgenden Beispiel wird die Klasse serialisiert Group enthält ein Feld namens Employees die gibt ein Array von Employee Objekte. Im Beispiel wird die XmlArrayItemAttribute zugewiesen, in das Feld der XmlSerializer dass die Objekte sowohl der Basisklasse eingefügt werden können (Employee) Typ und den Typ der abgeleiteten Klasse (Manager) in das serialisierte Array.

using System;
using System.IO;
using System.Xml.Serialization;

public class Group
{  
   /* The XmlArrayItemAttribute allows the XmlSerializer to insert
      both the base type (Employee) and derived type (Manager) 
      into serialized arrays. */

   [XmlArrayItem(typeof(Manager)),
   XmlArrayItem(typeof(Employee))]
   public Employee[] Employees;

   /* Use the XmlArrayItemAttribute to specify types allowed
      in an array of Object items. */
   [XmlArray]
   [XmlArrayItem (typeof(int),
   ElementName = "MyNumber"),
   XmlArrayItem (typeof(string),
   ElementName = "MyString"),
   XmlArrayItem(typeof(Manager))]
   public object [] 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("TypeDoc.xml");
      test.DeserializeObject("TypeDoc.xml");
   }


   public void SerializeObject(string filename)
   {
      // Creates a new XmlSerializer.
      XmlSerializer s = new XmlSerializer(typeof(Group));

      // Writing the XML file to disk requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);
      Group group = new Group();

      Manager manager = new Manager();
      Employee emp1 = new Employee();
      Employee emp2 = new Employee();
      manager.Name = "Consuela";
      manager.Level = 3;
      emp1.Name = "Seiko";
      emp2.Name = "Martina";
      Employee [] emps = new Employee[3]{manager, emp1, emp2};
      group.Employees = emps;

      // Creates an int and a string and assigns to ExtraInfo.
      group.ExtraInfo = new Object[3]{43, "Extra", manager};

      // Serializes the object, and closes the StreamWriter.
      s.Serialize(writer, group);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      FileStream fs = new FileStream(filename, FileMode.Open);
      XmlSerializer x = new XmlSerializer(typeof(Group));
      Group g = (Group) x.Deserialize(fs);
      Console.WriteLine("Members:");

      foreach(Employee e in g.Employees) 
      {
         Console.WriteLine("\t" + e.Name);
      }
   }
}

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: