XmlAnyElementAttributes Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje kolekcję XmlAnyElementAttribute obiektów.
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
- Dziedziczenie
-
XmlAnyElementAttributes
- Dziedziczenie
- Implementuje
Przykłady
Poniższy przykład tworzy nowy XmlAnyElementAttribute i dodaje go do kolekcji obiektów, do których uzyskuje dostęp za pośrednictwem XmlAnyElements właściwości. Element XmlAttributes jest następnie dodawany do XmlAttributeOverrides elementu , który służy do tworzenia elementu XmlSerializer. Służy XmlSerializer do serializacji lub deserializacji obiektu. Aby zobaczyć efekt użycia XmlAnyElementAttributes właściwości, utwórz dokument XML o nazwie UnknownElements.xml, uruchamiając metodę SerializeObject
w metodzie Main
. Edytuj wynikowy dokument, aby uwzględnić inne (nieznane) elementy. SerializeObject
Oznacz jako komentarz wywołanie metody Main
i usuń komentarz do DeserializeObject
metody, która wyświetla nazwę i wartość dowolnego nieznanego elementu XML.
#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
Uwagi
Użyj polecenia , XmlAnyElementAttributes aby zastąpić zachowanie zestawu XmlAnyElementAttribute obiektów. Do składowej klasy można zastosować wiele wystąpień XmlAnyElementAttribute klasy, o ile każde wystąpienie ma odrębną Name wartość właściwości. Spowoduje XmlSerializer to zebranie nieznanych elementów w nazwanym elemencie w odpowiedniej tablicy. Z tego powodu do klasy można dodać XmlAnyElementAttributeswiele wystąpień XmlAnyElementAttribute klasy .
Aby zastąpić zestaw XmlAnyElementAttribute obiektów:
Utwórz obiekt XmlAnyElementAttributes.
Utwórz zestaw XmlAnyElementAttribute obiektów i dodaj każdy obiekt do kolekcji przy użyciu Add metody .
Utwórz obiekt XmlAttributes.
XmlAnyElements Ustaw właściwość na XmlAnyElementAttributeswartość .
Utwórz obiekt XmlAttributeOverrides.
Dodaj element XmlAttributes do XmlAttributeOverrides metody using .Add
Utwórz wystąpienie XmlSerializer obiektu przy użyciu polecenia XmlAttributeOverrides.
Serializuj lub deserializacji obiektu zawierającego XmlAnyElementAttribute zestaw obiektów.
Konstruktory
XmlAnyElementAttributes() |
Inicjuje nowe wystąpienie klasy XmlAnyElementAttributes. |
Właściwości
Capacity |
Pobiera lub ustawia liczbę elementów, które CollectionBase mogą zawierać. (Odziedziczone po CollectionBase) |
Count |
Pobiera liczbę elementów zawartych w słowniku ICollection. |
Count |
Pobiera liczbę elementów zawartych w wystąpieniu CollectionBase . Tej właściwości nie można zastąpić. (Odziedziczone po CollectionBase) |
InnerList |
Pobiera obiekt ArrayList zawierający listę elementów w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
Item[Int32] |
Pobiera lub ustawia wartość XmlAnyElementAttribute w określonym indeksie. |
List |
Pobiera obiekt IList zawierający listę elementów w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
Metody
Add(XmlAnyElementAttribute) |
Dodaje element XmlAnyElementAttribute do kolekcji. |
Clear() |
Usuwa wszystkie elementy z elementu IList. |
Clear() |
Usuwa wszystkie obiekty z CollectionBase wystąpienia. Tej metody nie można zastąpić. (Odziedziczone po CollectionBase) |
Contains(XmlAnyElementAttribute) |
Pobiera wartość wskazującą, czy określona istnieje XmlAnyElementAttribute w kolekcji. |
CopyTo(XmlAnyElementAttribute[], Int32) |
Kopiuje całą kolekcję do zgodnej jednowymiarowej tablicy XmlElementAttribute obiektów, zaczynając od określonego indeksu tablicy docelowej. |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetEnumerator() |
Zwraca moduł wyliczający, który iteruje po kolekcji. |
GetEnumerator() |
Zwraca moduł wyliczający, który iteruje po wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IndexOf(XmlAnyElementAttribute) |
Pobiera indeks określonego XmlAnyElementAttributeelementu . |
Insert(Int32, XmlAnyElementAttribute) |
Wstawia element XmlAnyElementAttribute do kolekcji w określonym indeksie. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
OnClear() |
Wykonuje dodatkowe procesy niestandardowe podczas czyszczenia zawartości CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnClearComplete() |
Wykonuje dodatkowe procesy niestandardowe po wyczyszczeniu zawartości CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnInsert(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe przed wstawieniem nowego elementu do CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnInsertComplete(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe po wstawieniu nowego elementu do CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnRemove(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe podczas usuwania elementu z CollectionBase wystąpienia. (Odziedziczone po CollectionBase) |
OnRemoveComplete(Int32, Object) |
Wykonuje dodatkowe procesy niestandardowe po usunięciu CollectionBase elementu z wystąpienia. (Odziedziczone po CollectionBase) |
OnSet(Int32, Object, Object) |
Wykonuje dodatkowe procesy niestandardowe przed ustawieniem wartości w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
OnSetComplete(Int32, Object, Object) |
Wykonuje dodatkowe procesy niestandardowe po ustawieniu wartości w wystąpieniu CollectionBase . (Odziedziczone po CollectionBase) |
OnValidate(Object) |
Wykonuje dodatkowe procesy niestandardowe podczas sprawdzania poprawności wartości. (Odziedziczone po CollectionBase) |
Remove(XmlAnyElementAttribute) |
Usuwa określony XmlAnyElementAttribute element z kolekcji. |
RemoveAt(Int32) |
IList Usuwa element w określonym indeksie. |
RemoveAt(Int32) |
Usuwa element w określonym indeksie CollectionBase wystąpienia. Ta metoda nie jest zastępowalna. (Odziedziczone po CollectionBase) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
ICollection.CopyTo(Array, Int32) |
Kopiuje elementy ICollection do tablicy, zaczynając od określonego indeksu. |
ICollection.CopyTo(Array, Int32) |
Kopiuje całość CollectionBase do zgodnego jednowymiarowego Arrayobiektu , zaczynając od określonego indeksu tablicy docelowej. (Odziedziczone po CollectionBase) |
ICollection.IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do elementu ICollection jest synchronizowany (bezpieczny wątek). |
ICollection.IsSynchronized |
Pobiera wartość wskazującą, czy dostęp do elementu CollectionBase jest synchronizowany (bezpieczny wątk). (Odziedziczone po CollectionBase) |
ICollection.SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do obiektu ICollection. |
ICollection.SyncRoot |
Pobiera obiekt, który może służyć do synchronizowania dostępu do obiektu CollectionBase. (Odziedziczone po CollectionBase) |
IList.Add(Object) |
Dodaje element do elementu IList. |
IList.Add(Object) |
Dodaje obiekt na końcu obiektu CollectionBase. (Odziedziczone po CollectionBase) |
IList.Contains(Object) |
Określa, czy element IList zawiera określoną wartość. |
IList.Contains(Object) |
Określa, czy element CollectionBase zawiera określony element. (Odziedziczone po CollectionBase) |
IList.IndexOf(Object) |
Określa indeks określonego elementu w elemencie IList. |
IList.IndexOf(Object) |
Wyszukuje określony Object element i zwraca indeks oparty na zerze pierwszego wystąpienia w całym CollectionBaseobiekcie . (Odziedziczone po CollectionBase) |
IList.Insert(Int32, Object) |
Wstawia element do IList określonego indeksu. |
IList.Insert(Int32, Object) |
Wstawia element do określonego indeksu CollectionBase . (Odziedziczone po CollectionBase) |
IList.IsFixedSize |
Pobiera wartość wskazującą, czy rozmiar IList ma stały rozmiar. |
IList.IsFixedSize |
Pobiera wartość wskazującą, czy ma CollectionBase stały rozmiar. (Odziedziczone po CollectionBase) |
IList.IsReadOnly |
Pobiera wartość wskazującą, czy kolekcja IList jest przeznaczona tylko do odczytu. |
IList.IsReadOnly |
Pobiera wartość wskazującą, czy kolekcja CollectionBase jest przeznaczona tylko do odczytu. (Odziedziczone po CollectionBase) |
IList.Item[Int32] |
Pobiera lub ustawia element pod określonym indeksem. |
IList.Item[Int32] |
Pobiera lub ustawia element pod określonym indeksem. (Odziedziczone po CollectionBase) |
IList.Remove(Object) |
Usuwa pierwsze wystąpienie określonego obiektu z obiektu IList. |
IList.Remove(Object) |
Usuwa pierwsze wystąpienie określonego obiektu z obiektu CollectionBase. (Odziedziczone po CollectionBase) |
Metody rozszerzania
Cast<TResult>(IEnumerable) |
Rzutuje elementy elementu IEnumerable na określony typ. |
OfType<TResult>(IEnumerable) |
Filtruje elementy IEnumerable elementu na podstawie określonego typu. |
AsParallel(IEnumerable) |
Umożliwia równoległość zapytania. |
AsQueryable(IEnumerable) |
Konwertuje element IEnumerable na .IQueryable |