XmlAnyElementAttributes Klas

Definitie

Vertegenwoordigt een verzameling XmlAnyElementAttribute objecten.

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
Overname
XmlAnyElementAttributes
Overname
XmlAnyElementAttributes
Implementeringen

Voorbeelden

In het volgende voorbeeld wordt een nieuwe XmlAnyElementAttribute gemaakt en toegevoegd aan de verzameling objecten die toegankelijk zijn via de XmlAnyElements eigenschap. De XmlAttributes wordt vervolgens toegevoegd aan een XmlAttributeOverrides, die wordt gebruikt om een XmlSerializer. Het XmlSerializer object wordt gebruikt om een object te serialiseren of deserialiseren. Als u het effect van het gebruik van de eigenschap wilt zien, maakt u een XML-document met de XmlAnyElementAttributes naam UnknownElements.xml door de SerializeObject methode in de methode uit te Main voeren. Bewerk het resulterende document om andere (onbekende) elementen op te nemen. Markeer de SerializeObject aanroep in de Main methode als commentaar en verwijder commentaar bij de aanroep naar de DeserializeObject methode, waarmee de naam en waarde van een onbekend XML-element worden afgedrukt.

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

Opmerkingen

Gebruik de functie XmlAnyElementAttributes om het gedrag van een set XmlAnyElementAttribute objecten te overschrijven. Er kunnen meerdere exemplaren van de XmlAnyElementAttribute klasse worden toegepast op een klasselid, zolang elk exemplaar een afzonderlijke Name eigenschapswaarde heeft. Hiermee wordt het XmlSerializer verzamelen van onbekende elementen onder het benoemde element in de juiste matrix geïnstrueerd. Daarom kunnen meerdere exemplaren van de XmlAnyElementAttribute klasse aan de XmlAnyElementAttributesklasse worden toegevoegd.

Ga als volgt te werk om een set XmlAnyElementAttribute objecten te overschrijven:

  1. Maak een XmlAnyElementAttributes.

  2. Maak de set objecten en voeg elk object aan de verzameling toe met behulp van XmlAnyElementAttribute de Add methode.

  3. Maak een XmlAttributes.

  4. Stel de XmlAnyElements eigenschap in op de XmlAnyElementAttributes.

  5. Maak een XmlAttributeOverrides.

  6. Voeg de aan XmlAttributes de XmlAttributeOverrides hand van de Add methode toe.

  7. Maak een exemplaar van het XmlSerializer gebruik van de XmlAttributeOverrides.

  8. Serialiseren of deserialiseren van een object dat de set XmlAnyElementAttribute objecten bevat.

Constructors

Name Description
XmlAnyElementAttributes()

Initialiseert een nieuw exemplaar van de XmlAnyElementAttributes klasse.

Eigenschappen

Name Description
Capacity

Hiermee haalt u het aantal elementen op of CollectionBase stelt u dit in.

(Overgenomen van CollectionBase)
Count

Hiermee haalt u het aantal elementen op dat is opgenomen in de ICollection.

Count

Hiermee haalt u het aantal elementen op dat in het CollectionBase exemplaar is opgenomen. Deze eigenschap kan niet worden overschreven.

(Overgenomen van CollectionBase)
InnerList

Hiermee haalt u een ArrayList met de lijst met elementen in het CollectionBase exemplaar op.

(Overgenomen van CollectionBase)
Item[Int32]

Hiermee haalt u de opgegeven index op of stelt u deze XmlAnyElementAttribute in.

List

Hiermee haalt u een IList met de lijst met elementen in het CollectionBase exemplaar op.

(Overgenomen van CollectionBase)

Methoden

Name Description
Add(XmlAnyElementAttribute)

Voegt een XmlAnyElementAttribute aan de verzameling toe.

Clear()

Hiermee verwijdert u alle items uit de IList.

Clear()

Hiermee verwijdert u alle objecten uit het CollectionBase exemplaar. Deze methode kan niet worden overschreven.

(Overgenomen van CollectionBase)
Contains(XmlAnyElementAttribute)

Hiermee wordt een waarde opgehaald die aangeeft of de opgegeven XmlAnyElementAttribute bestaat in de verzameling.

CopyTo(XmlAnyElementAttribute[], Int32)

Kopieert de volledige verzameling naar een compatibele eendimensionale matrix van XmlElementAttribute objecten, te beginnen bij de opgegeven index van de doelmatrix.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetEnumerator()

Retourneert een enumerator die door een verzameling wordt herhaald.

GetEnumerator()

Retourneert een enumerator die door het CollectionBase exemplaar wordt herhaald.

(Overgenomen van CollectionBase)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IndexOf(XmlAnyElementAttribute)

Hiermee haalt u de index van de opgegeven XmlAnyElementAttribute.

Insert(Int32, XmlAnyElementAttribute)

Hiermee voegt u een XmlAnyElementAttribute in de verzameling in de opgegeven index in.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
OnClear()

Voert extra aangepaste processen uit bij het wissen van de inhoud van het CollectionBase exemplaar.

(Overgenomen van CollectionBase)
OnClearComplete()

Voert extra aangepaste processen uit nadat de inhoud van het CollectionBase exemplaar is gewist.

(Overgenomen van CollectionBase)
OnInsert(Int32, Object)

Voert aanvullende aangepaste processen uit voordat u een nieuw element in het CollectionBase exemplaar invoegt.

(Overgenomen van CollectionBase)
OnInsertComplete(Int32, Object)

Voert extra aangepaste processen uit na het invoegen van een nieuw element in het CollectionBase exemplaar.

(Overgenomen van CollectionBase)
OnRemove(Int32, Object)

Voert extra aangepaste processen uit bij het verwijderen van een element uit het CollectionBase exemplaar.

(Overgenomen van CollectionBase)
OnRemoveComplete(Int32, Object)

Voert extra aangepaste processen uit nadat u een element uit het CollectionBase exemplaar hebt verwijderd.

(Overgenomen van CollectionBase)
OnSet(Int32, Object, Object)

Voert extra aangepaste processen uit voordat u een waarde instelt in het CollectionBase exemplaar.

(Overgenomen van CollectionBase)
OnSetComplete(Int32, Object, Object)

Voert extra aangepaste processen uit na het instellen van een waarde in het CollectionBase exemplaar.

(Overgenomen van CollectionBase)
OnValidate(Object)

Voert extra aangepaste processen uit bij het valideren van een waarde.

(Overgenomen van CollectionBase)
Remove(XmlAnyElementAttribute)

Hiermee verwijdert u de opgegeven XmlAnyElementAttribute uit de verzameling.

RemoveAt(Int32)

Hiermee verwijdert u het IList item in de opgegeven index.

RemoveAt(Int32)

Hiermee verwijdert u het element in de opgegeven index van het CollectionBase exemplaar. Deze methode kan niet worden overschreven.

(Overgenomen van CollectionBase)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
ICollection.CopyTo(Array, Int32)

Kopieert de elementen van de ICollection naar een matrix, beginnend bij een bepaalde index.

ICollection.CopyTo(Array, Int32)

Kopieert het hele CollectionBase naar een compatibele eendimensionale Arraywaarde, beginnend bij de opgegeven index van de doelmatrix.

(Overgenomen van CollectionBase)
ICollection.IsSynchronized

Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot de ICollection synchronisatie is gesynchroniseerd (thread safe).

ICollection.IsSynchronized

Hiermee wordt een waarde opgehaald die aangeeft of de toegang tot de CollectionBase synchronisatie is gesynchroniseerd (thread safe).

(Overgenomen van CollectionBase)
ICollection.SyncRoot

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het ICollectionobject te synchroniseren.

ICollection.SyncRoot

Hiermee haalt u een object op dat kan worden gebruikt om de toegang tot het CollectionBaseobject te synchroniseren.

(Overgenomen van CollectionBase)
IList.Add(Object)

Voegt een item toe aan de IList.

IList.Add(Object)

Hiermee voegt u een object toe aan het einde van de CollectionBase.

(Overgenomen van CollectionBase)
IList.Contains(Object)

Bepaalt of de IList waarde een specifieke waarde bevat.

IList.Contains(Object)

Bepaalt of het CollectionBase een specifiek element bevat.

(Overgenomen van CollectionBase)
IList.IndexOf(Object)

Bepaalt de index van een specifiek item in de IList.

IList.IndexOf(Object)

Zoekt naar de opgegeven Object en retourneert de op nul gebaseerde index van het eerste exemplaar binnen het hele CollectionBaseexemplaar.

(Overgenomen van CollectionBase)
IList.Insert(Int32, Object)

Hiermee voegt u een item toe aan de IList opgegeven index.

IList.Insert(Int32, Object)

Hiermee voegt u een element in de CollectionBase opgegeven index in.

(Overgenomen van CollectionBase)
IList.IsFixedSize

Hiermee wordt een waarde opgehaald die aangeeft of de grootte van een IList vaste grootte is.

IList.IsFixedSize

Hiermee wordt een waarde opgehaald die aangeeft of de grootte van een CollectionBase vaste grootte is.

(Overgenomen van CollectionBase)
IList.IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of het IList kenmerk Alleen-lezen is.

IList.IsReadOnly

Hiermee wordt een waarde opgehaald die aangeeft of het CollectionBase kenmerk Alleen-lezen is.

(Overgenomen van CollectionBase)
IList.Item[Int32]

Hiermee haalt u het element op de opgegeven index op of stelt u het in.

IList.Item[Int32]

Hiermee haalt u het element op de opgegeven index op of stelt u het in.

(Overgenomen van CollectionBase)
IList.Remove(Object)

Hiermee verwijdert u het eerste exemplaar van een specifiek object uit de IList.

IList.Remove(Object)

Hiermee verwijdert u het eerste exemplaar van een specifiek object uit de CollectionBase.

(Overgenomen van CollectionBase)

Extensiemethoden

Name Description
AsParallel(IEnumerable)

Hiermee schakelt u parallelle uitvoering van een query in.

AsQueryable(IEnumerable)

Converteert een IEnumerable naar een IQueryable.

Cast<TResult>(IEnumerable)

Cast de elementen van een IEnumerable naar het opgegeven type.

OfType<TResult>(IEnumerable)

Hiermee filtert u de elementen van een IEnumerable op basis van een opgegeven type.

Van toepassing op