XmlAnyElementAttributes 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 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
- Implementiert
Beispiele
Im folgenden Beispiel wird eine neue XmlAnyElementAttribute erstellt und der Auflistung von Objekten hinzugefügt, auf die über die XmlAnyElements -Eigenschaft zugegriffen wird. Wird XmlAttributes dann zu einer XmlAttributeOverrides hinzugefügt, die verwendet wird, um eine XmlSerializerzu erstellen. Wird XmlSerializer verwendet, um ein Objekt zu serialisieren oder zu deserialisieren. Um die Auswirkungen der Verwendung der XmlAnyElementAttributes -Eigenschaft zu sehen, 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 heben Sie die Auskommentierung des Aufrufs der DeserializeObject
-Methode auf, die den Namen und Den Wert eines unbekannten XML-Elements ausgibt.
#using <System.dll>
#using <System.xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml::Serialization;
using namespace System::Xml;
public ref class Group
{
public:
String^ GroupName;
[XmlAnyElement]
array<Object^>^Things;
};
void SerializeObject( String^ filename );
void DeserializeObject( String^ filename );
XmlSerializer^ CreateOverrideSerializer();
int main()
{
// 1 Run this and create the XML document.
// 2 Add new elements to the XML document.
// 3 Comment out the next line, and uncomment
// the DeserializeObject line to deserialize the
// XML document and see unknown elements.
SerializeObject( "UnknownElements.xml" );
// DeserializeObject(S"UnknownElements.xml");
}
void SerializeObject( String^ filename )
{
XmlSerializer^ ser = gcnew XmlSerializer( Group::typeid );
TextWriter^ writer = gcnew StreamWriter( filename );
Group^ g = gcnew Group;
g->GroupName = "MyGroup";
ser->Serialize( writer, g );
writer->Close();
}
void DeserializeObject( String^ filename )
{
XmlSerializer^ ser = CreateOverrideSerializer();
// A FileStream is needed to read the XML document.
FileStream^ fs = gcnew FileStream( filename,FileMode::Open );
Group^ g = safe_cast<Group^>(ser->Deserialize( fs ));
fs->Close();
Console::WriteLine( g->GroupName );
Console::WriteLine( g->Things->Length );
for ( int i = 0; i < g->Things->Length; ++i )
{
XmlElement^ xelement = safe_cast<XmlElement^>(g->Things[ i ]);
Console::WriteLine( "{0}: {1}", xelement->Name, xelement->InnerXml );
}
}
XmlSerializer^ CreateOverrideSerializer()
{
XmlAnyElementAttribute^ myAnyElement = gcnew XmlAnyElementAttribute;
XmlAttributeOverrides^ xOverride = gcnew XmlAttributeOverrides;
XmlAttributes^ xAtts = gcnew XmlAttributes;
xAtts->XmlAnyElements->Add( myAnyElement );
xOverride->Add( Group::typeid, "Things", xAtts );
return gcnew XmlSerializer( Group::typeid,xOverride );
}
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 , XmlAnyElementAttributes um das Verhalten einer Gruppe von XmlAnyElementAttribute -Objekten zu überschreiben. Mehrere Instanzen der XmlAnyElementAttribute -Klasse können auf einen Klassenmember angewendet werden, solange jede Instanz über einen eindeutigen Name Eigenschaftswert verfügt. Dadurch wird angewiesen XmlSerializer , unbekannte Elemente unter dem benannten Element in das entsprechende Array zu sammeln. Aus diesem Grund können dem mehrere Instanzen der XmlAnyElementAttribute -Klasse hinzugefügt XmlAnyElementAttributeswerden.
So überschreiben Sie eine Gruppe von XmlAnyElementAttribute -Objekten:
Erstellen Sie eine XmlAnyElementAttributes.
Erstellen Sie den Satz von XmlAnyElementAttribute -Objekten, und fügen Sie jedes Objekt mithilfe der Add -Methode der Auflistung hinzu.
Erstellen Sie eine XmlAttributes.
Legen Sie die XmlAnyElements -Eigenschaft auf fest XmlAnyElementAttributes.
Erstellen Sie eine XmlAttributeOverrides.
Fügen Sie der XmlAttributes mithilfe der -Methode hinzu XmlAttributeOverridesAdd .
Erstellen Sie mithilfe von eine Instanz von XmlSerializerXmlAttributeOverrides.
Serialisieren oder deserialisieren eines Objekts, das den Satz von XmlAnyElementAttribute -Objekten enthält.
Konstruktoren
XmlAnyElementAttributes() |
Initialisiert eine neue Instanz der XmlAnyElementAttributes-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 die XmlAnyElementAttribute-Klasse am angegebenen Index ab oder legt diese fest. |
List |
Ruft eine IList mit der Liste der Elemente in der CollectionBase-Instanz ab. (Geerbt von CollectionBase) |
Methoden
Add(XmlAnyElementAttribute) |
Fügt der Auflistung XmlAnyElementAttribute 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(XmlAnyElementAttribute) |
Ruft einen Wert ab, der angibt, ob das angegebene XmlAnyElementAttribute in der Auflistung vorhanden ist. |
CopyTo(XmlAnyElementAttribute[], Int32) |
Kopiert die gesamte Auflistung in ein kompatibles eindimensionales Array von XmlElementAttribute-Objekten, beginnend ab dem angegebenen Index im Zielarray. |
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(XmlAnyElementAttribute) |
Ruft den Index der angegebenen XmlAnyElementAttribute ab. |
Insert(Int32, XmlAnyElementAttribute) |
Fügt XmlAnyElementAttribute am angegebenen Index 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(XmlAnyElementAttribute) |
Entfernt den angegebenen XmlAnyElementAttribute 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 ab einem bestimmten Index in ein Array. |
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. |