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

XmlAnyElementAttribute-Klasse

 

Veröffentlicht: Oktober 2016

Gibt an, dass der Member (ein Feld, das ein Array von gibt XmlElement oder XmlNode Objekte) enthält Objekte, die XML-Elemente, die keine entsprechenden Member darstellen in das Objekt, serialisiert oder deserialisiert.

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

System.Object
  System.Attribute
    System.Xml.Serialization.XmlAnyElementAttribute

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

NameBeschreibung
System_CAPS_pubmethodXmlAnyElementAttribute()

Initialisiert eine neue Instanz der XmlAnyElementAttribute-Klasse.

System_CAPS_pubmethodXmlAnyElementAttribute(String)

Initialisiert eine neue Instanz der XmlAnyElementAttribute -Klasse und gibt den XML-Elementnamen in der XML-Dokument generiert.

System_CAPS_pubmethodXmlAnyElementAttribute(String, String)

Initialisiert eine neue Instanz der XmlAnyElementAttribute -Klasse und gibt den XML-Elementnamen in der XML-Dokument und dessen XML-Namespace generiert.

NameBeschreibung
System_CAPS_pubpropertyName

Ruft ab oder legt den Namen der XML-Element.

System_CAPS_pubpropertyNamespace

Ruft ab oder legt den XML-Namespace des XML-Dokuments generiert.

System_CAPS_pubpropertyOrder

Ruft ab oder legt die explizite Reihenfolge, in der die Elemente serialisiert oder deserialisiert werden.

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“.)

System_CAPS_tipTipp

Bei der Arbeit in eine portable Klassenbibliothek wie Silverlight, Windows Phone oder Windows Store-App-Projekt und zur Verwendung der .NET Framework 4.0.3 und höher, XElement oder XNode anstelle von XmlElement und XmlNode.

Verwenden der XmlAnyElementAttribute kann beliebige Daten (als XML-Elemente) enthalten, als Teil eines XML-Dokuments, z. B. Metadaten, die als Teil des Dokuments gesendet werden können.

Anwenden der XmlAnyElementAttribute auf ein Feld, das ein Array von gibt XmlElement oder XmlNode Objekte. Ein Feld kann verwendet werden, auf zwei Arten, abhängig davon, ob ein Objekt wird serialisiert oder deserialisiert. Bei der Serialisierung wird das Objekt als XML-Elemente oder-Knoten generiert, obwohl sie keine entsprechenden Member (oder Elemente) in das Objekt serialisiert wird haben. Bei Angabe einer Name Eigenschaftswert beim Anwenden des Attributs alle XmlElement oder XmlNode in das Array eingefügten Objekte müssen den gleichen Namen und Namespace, oder eine Ausnahme ausgelöst. Wenn Sie festlegen der Namespace Eigenschaftswert haben, müssen Sie festlegen der Name Eigenschaft, und die XmlElement oder XmlNode Objekte müssen auch die gleichen Werte für Name und Namespace aufweisen. Wenn kein Name -Wert angegeben wird, die XmlElement oder XmlNode Objekte können Elementnamen.

Beim Aufrufen der Deserialize Methode der XmlSerializer -Klasse, alle Elemente, die keinen entsprechenden Member in dem zu deserialisierenden Objekt im Array gesammelt werden. Durchlaufen Sie nach der Deserialisierung wird die Auflistung der XmlElement Elemente zum Verarbeiten der Daten. Bei Angabe einer Name Wert das Array enthält, nur XML-Elemente mit diesem Namen. Wenn Sie keinen angeben einer Name Wert, enthält das Array alle Elemente, die keinen entsprechenden Member in der Klasse verfügen. Wenn eine Klasse mehrere Felder enthält, auf das das Attribut angewendet wird, verwenden Sie die Name, oder Name und Namespace Eigenschaften, um den Inhalt des Arrays unterscheiden. Wenn eine solche Klasse (mit mehreren Feldern) außerdem ein Feld enthält, die keine unterscheidende Eigenschaftswerte enthält (also Name und Namespace) während der Deserialisierung, enthält dieses Array alle unbekannten XML-Elemente, die nicht bereits in den anderen Arrays vorhanden sind. Wenn eine Klasse mehrere Felder enthält, die nicht unterscheidenden Name, oder Name und Namespace Wert festgelegt ist, ist das Verhalten während der Deserialisierung undefiniert.

Sie können auch anwenden der XmlAnyElementAttribute auf ein Feld, das ein einzelnes gibt XmlElement Objekt. Wenn Sie dies tun, müssen Sie die Eigenschaften und Methoden des verwenden die XmlElement Klasse rekursiv durchlaufen den unbekannten Elementen.

Sie können mehrere Instanzen von Anwenden der XmlAnyElementAttribute auf eine Klasse Member, aber jede Instanz muss haben einen unterschiedlichen Name Eigenschaftswert. Oder, wenn die gleiche Name Eigenschaftensatz wird für jede Instanz einen unterschiedlichen Namespace Eigenschaftswert muss für jede Instanz festgelegt werden.

Die UnknownNode und UnknownAttribute Ereignisse von den XmlSerializer nicht auftreten, wenden Sie die XmlAnyElementAttribute auf einen Member einer Klasse.

System_CAPS_noteHinweis

Sie können das Wort XmlAnyElement in Ihrem Code anstelle des längeren XmlAnyElementAttribute.

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

Im folgenden Beispiel wird die XmlAnyElementAttribute auf ein Feld mit dem Namen AllElements die gibt ein Array von XmlElement Objekte.

public class XClass
{
   /* Apply the XmlAnyElementAttribute to a field returning an array
   of XmlElement objects. */
   [XmlAnyElement]
   public XmlElement[] AllElements;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.DeserializeObject("XFile.xml");
   }

   private void DeserializeObject(string filename)
   {
      // Create an XmlSerializer.
      XmlSerializer mySerializer = new XmlSerializer(typeof(XClass));

      // To read a file, a FileStream is needed.
      FileStream fs = new FileStream(filename, FileMode.Open);

      // Deserialize the class.
      XClass x = (XClass) mySerializer.Deserialize(fs);

      // Read the element names and values.
      foreach(XmlElement xel in x.AllElements)
         Console.WriteLine(xel.LocalName + ": " + xel.Value);
   }
}

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: