Freigeben über


XmlAnyElementAttributes Klasse

Definition

Stellt eine Auflistung von XmlAnyElementAttribute -Objekten dar.

public ref class XmlAnyElementAttributes : System::Collections::IList
public ref class XmlAnyElementAttributes : System::Collections::CollectionBase
public class XmlAnyElementAttributes : System.Collections.IList
public class XmlAnyElementAttributes : System.Collections.CollectionBase
type XmlAnyElementAttributes = class
    interface ICollection
    interface IEnumerable
    interface IList
type XmlAnyElementAttributes = class
    inherit CollectionBase
Public Class XmlAnyElementAttributes
Implements IList
Public Class XmlAnyElementAttributes
Inherits CollectionBase
Vererbung
XmlAnyElementAttributes
Vererbung
XmlAnyElementAttributes
Implementiert

Beispiele

Im folgenden Beispiel wird ein neues XmlAnyElementAttribute Erstellt und der Auflistung von Objekten hinzugefügt, auf die über die XmlAnyElements Eigenschaft zugegriffen wird. Das XmlAttributes wird dann zu einem XmlAttributeOverrides, der zum Erstellen eines XmlSerializer. Dies XmlSerializer wird verwendet, um ein Objekt zu serialisieren oder zu deserialisieren. Um den Effekt der Verwendung der XmlAnyElementAttributes Eigenschaft anzuzeigen, erstellen Sie ein XML-Dokument mit dem Namen UnknownElements.xml, indem Sie die SerializeObject Methode in der Main Methode ausführen. Bearbeiten Sie das resultierende Dokument, um andere (unbekannte) Elemente einzuschließen. Kommentieren Sie den SerializeObject Aufruf in der Main Methode aus, und kommentieren Sie den Aufruf der DeserializeObject Methode, der den Namen und den Wert eines unbekannten XML-Elements ausgibt.

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

public class Group{
   public string GroupName;
   [XmlAnyElement]
   public object[]Things;
}

public class Test{
   static void Main(){
      Test t = new Test();
      // 1 Run this and create the XML document.
      // 2 Add new elements to the XML document.
      // 3 Comment out the new line, and uncomment
      // the DeserializeObject line to deserialize the
      // XML document and see unknown elements.
      t.SerializeObject("UnknownElements.xml");
     
      // t.DeserializeObject("UnknownElements.xml");
   }

   private void SerializeObject(string filename){
      XmlSerializer ser = new XmlSerializer(typeof (Group));
      TextWriter writer = new StreamWriter(filename);
      Group g = new Group();
      g.GroupName = "MyGroup";
      ser.Serialize(writer, g);
      writer.Close();
   }

   private void DeserializeObject(string filename){

      XmlSerializer ser = CreateOverrideSerializer();
      // A FileStream is needed to read the XML document.
      FileStream fs = new FileStream(filename, FileMode.Open);
     Group g = (Group)
        ser.Deserialize(fs);
     fs.Close();
     Console.WriteLine(g.GroupName);
     Console.WriteLine(g.Things.Length);
     foreach(XmlElement xelement in g.Things){
     Console.WriteLine(xelement.Name + ": " + xelement.InnerXml);
     }
   }

   private XmlSerializer CreateOverrideSerializer(){
      XmlAnyElementAttribute myAnyElement = 
      new XmlAnyElementAttribute();
      XmlAttributeOverrides xOverride = 
      new XmlAttributeOverrides();
      XmlAttributes xAtts = new XmlAttributes();
      xAtts.XmlAnyElements.Add(myAnyElement);
      xOverride.Add(typeof(Group), "Things", xAtts);
      return new XmlSerializer(typeof(Group) , xOverride);
   }
}
Imports System.IO
Imports System.Xml.Serialization
Imports System.Xml

Public Class Group
   Public GroupName As String 
   <XmlAnyElement> _
   Public Things () As object
End Class

Public Class Test
   Shared Sub Main()
      Dim t As Test = New Test()
      ' 1 Run this and create the XML document.
      ' 2 Add New elements to the XML document.
      ' 3 Comment out the New line, and uncomment
      ' the DeserializeObject line to deserialize the
      ' XML document and see unknown elements.
     t.SerializeObject("UnknownElements.xml")
     
      't.DeserializeObject("UnknownElements.xml")
   End Sub

   Private Sub SerializeObject(filename As String)
      Dim ser As XmlSerializer = New XmlSerializer(GetType (Group))
      Dim writer As TextWriter = New StreamWriter(filename)
      
      Dim g As Group = New Group()
      g.GroupName = "MyGroup"
      ser.Serialize(writer, g)
      writer.Close()
   End Sub

   
   Private Sub DeserializeObject(filename As String)

      Dim ser As XmlSerializer = CreateOverrideSerializer()
      ' A FileStream is needed to read the XML document.
      Dim fs As FileStream = New FileStream(filename, FileMode.Open)
     Dim g As Group = CType( _
        ser.Deserialize(fs), Group)
     fs.Close()
     Console.WriteLine(g.GroupName)
     Console.WriteLine(g.Things.Length)
     Dim xelement As XmlELement
     for each xelement in g.Things
        Console.WriteLine(xelement.Name &": " & xelement.InnerXml)
     next
   End Sub
   

   Private Function CreateOverrideSerializer() As XmlSerializer 
      Dim myAnyElement As XmlAnyElementAttribute = _
      New XmlAnyElementAttribute()
      Dim xOverride As XmlAttributeOverrides = _
      New XmlAttributeOverrides()
      Dim xAtts As XmlAttributes = New XmlAttributes()
      xAtts.XmlAnyElements.Add(myAnyElement)
      xOverride.Add(GetType(Group), "Things", xAtts)
      return New XmlSerializer(GetType(Group) , xOverride)
   End Function
End Class

Hinweise

Verwenden Sie zum XmlAnyElementAttributes Überschreiben des Verhaltens einer Gruppe von XmlAnyElementAttribute Objekten. Mehrere Instanzen der XmlAnyElementAttribute Klasse können auf ein Klassenelement angewendet werden, solange jede Instanz über einen eindeutigen Name Eigenschaftswert verfügt. Dadurch wird angewiesen, unbekannte Elemente unter dem benannten XmlSerializer Element in das entsprechende Array zu sammeln. Aus diesem Grund können mehrere Instanzen der XmlAnyElementAttribute Klasse der XmlAnyElementAttributesKlasse hinzugefügt werden.

So überschreiben Sie eine Gruppe von XmlAnyElementAttribute Objekten:

  1. Erstellen sie eine XmlAnyElementAttributes.

  2. Erstellen Sie den Satz von XmlAnyElementAttribute Objekten, und fügen Sie jedes Objekt mithilfe der Add Methode der Auflistung hinzu.

  3. Erstellen sie eine XmlAttributes.

  4. Legen Sie die XmlAnyElements Eigenschaft auf die XmlAnyElementAttributes.

  5. Erstellen sie eine XmlAttributeOverrides.

  6. Fügen Sie die XmlAttributes Methode zur XmlAttributeOverrides Verwendung hinzu Add .

  7. Erstellen Sie eine Instanz der Verwendung der XmlSerializerXmlAttributeOverrides.

  8. Serialisieren oder deserialisieren Sie ein Objekt, das den Satz von XmlAnyElementAttribute Objekten enthält.

Konstruktoren

Name Beschreibung
XmlAnyElementAttributes()

Initialisiert eine neue Instanz der XmlAnyElementAttributes-Klasse.

Eigenschaften

Name Beschreibung
Capacity

Ruft die Anzahl der Elemente ab, die dies enthalten kann, oder legt diese CollectionBase fest.

(Geerbt von CollectionBase)
Count

Ruft die Anzahl der Elemente ab, die in der ICollection.

Count

Ruft die Anzahl der In der CollectionBase Instanz enthaltenen Elemente ab. Diese Eigenschaft kann nicht außer Kraft gesetzt werden.

(Geerbt von CollectionBase)
InnerList

Ruft eine ArrayList liste der Elemente in der CollectionBase Instanz ab.

(Geerbt von CollectionBase)
Item[Int32]

Dient zum Abrufen oder Festlegen des XmlAnyElementAttribute Werts am angegebenen Index.

List

Ruft eine IList liste der Elemente in der CollectionBase Instanz ab.

(Geerbt von CollectionBase)

Methoden

Name Beschreibung
Add(XmlAnyElementAttribute)

Fügt der Auflistung eine XmlAnyElementAttribute hinzu.

Clear()

Entfernt alle Elemente aus dem IList.

Clear()

Entfernt alle Objekte aus der CollectionBase Instanz. Diese Methode kann nicht außer Kraft gesetzt werden.

(Geerbt von CollectionBase)
Contains(XmlAnyElementAttribute)

Ruft einen Wert ab, der angibt, ob die angegebene XmlAnyElementAttribute in der Auflistung vorhanden ist.

CopyTo(XmlAnyElementAttribute[], Int32)

Kopiert die gesamte Auflistung in ein kompatibles eindimensionales Array von XmlElementAttribute Objekten, beginnend am angegebenen Index des Zielarrays.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der eine Auflistung durchläuft.

GetEnumerator()

Gibt einen Enumerator zurück, der die CollectionBase Instanz durchläuft.

(Geerbt von CollectionBase)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(XmlAnyElementAttribute)

Ruft den Index des angegebenen XmlAnyElementAttributeab.

Insert(Int32, XmlAnyElementAttribute)

Fügt eine XmlAnyElementAttribute in die Auflistung am angegebenen Index ein.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnClear()

Führt zusätzliche benutzerdefinierte Prozesse aus, wenn der Inhalt der CollectionBase Instanz gelöscht wird.

(Geerbt von CollectionBase)
OnClearComplete()

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem der Inhalt der CollectionBase Instanz gelöscht wurde.

(Geerbt von CollectionBase)
OnInsert(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein neues Element in die CollectionBase Instanz eingefügt wird.

(Geerbt von CollectionBase)
OnInsertComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem ein neues Element in die CollectionBase Instanz eingefügt wurde.

(Geerbt von CollectionBase)
OnRemove(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, wenn ein Element aus der CollectionBase Instanz entfernt wird.

(Geerbt von CollectionBase)
OnRemoveComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, nachdem ein Element aus der CollectionBase Instanz entfernt wurde.

(Geerbt von CollectionBase)
OnSet(Int32, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein Wert in der CollectionBase Instanz festgelegt wird.

(Geerbt von CollectionBase)
OnSetComplete(Int32, Object, Object)

Führt nach dem Festlegen eines Werts in der CollectionBase Instanz weitere benutzerdefinierte Prozesse aus.

(Geerbt von CollectionBase)
OnValidate(Object)

Führt beim Überprüfen eines Werts zusätzliche benutzerdefinierte Prozesse aus.

(Geerbt von CollectionBase)
Remove(XmlAnyElementAttribute)

Entfernt den angegebenen XmlAnyElementAttribute Wert aus der Auflistung.

RemoveAt(Int32)

Entfernt das IList Element am angegebenen Index.

RemoveAt(Int32)

Entfernt das Element am angegebenen Index der CollectionBase Instanz. Diese Methode kann nicht außer Kraft gesetzt werden.

(Geerbt von CollectionBase)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICollection.CopyTo(Array, Int32)

Kopiert die Elemente des ICollection Arrays, beginnend bei einem bestimmten Index.

ICollection.CopyTo(Array, Int32)

Kopiert das Gesamte CollectionBase in einen kompatiblen eindimensionalen Array, beginnend am angegebenen Index des Zielarrays.

(Geerbt von CollectionBase)
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ICollection Synchronisierung (Threadsicher) erfolgt.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die CollectionBase Synchronisierung (Threadsicher) erfolgt.

(Geerbt von CollectionBase)
ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die ICollectionverwendet werden kann.

ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die CollectionBaseverwendet werden kann.

(Geerbt von CollectionBase)
IList.Add(Object)

Fügt ein Element zum IList.

IList.Add(Object)

Fügt ein Objekt am Ende der .CollectionBase

(Geerbt von CollectionBase)
IList.Contains(Object)

Bestimmt, ob der IList Wert einen bestimmten Wert enthält.

IList.Contains(Object)

Bestimmt, ob das CollectionBase Element 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 des gesamten CollectionBasezurück.

(Geerbt von CollectionBase)
IList.Insert(Int32, Object)

Fügt ein Element an den IList angegebenen Index ein.

IList.Insert(Int32, Object)

Fügt ein Element in den CollectionBase angegebenen Index ein.

(Geerbt von CollectionBase)
IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die IList Größe fest ist.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die CollectionBase Größe fest ist.

(Geerbt von CollectionBase)
IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob dies IList schreibgeschützt ist.

IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob dies CollectionBase schreibgeschützt ist.

(Geerbt von CollectionBase)
IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt es fest.

IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt es fest.

(Geerbt von CollectionBase)
IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem IList.

IList.Remove(Object)

Entfernt das erste Vorkommen eines bestimmten Objekts aus dem CollectionBase.

(Geerbt von CollectionBase)

Erweiterungsmethoden

Name Beschreibung
AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

Gilt für: