Nyelv

XmlAnyElementAttributes Osztály

Definíció

Objektumok gyűjteményét XmlAnyElementAttribute jelöli.

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
Öröklődés
XmlAnyElementAttributes
Öröklődés
XmlAnyElementAttributes
Megvalósítás

Példák

Az alábbi példa létrehoz egy újat XmlAnyElementAttribute , és hozzáadja a tulajdonságon keresztül elért objektumok gyűjteményéhez XmlAnyElements . A XmlAttributes rendszer ezután hozzáadja egy XmlAttributeOverrides, a létrehozásához XmlSerializerhasznált . Az XmlSerializer objektum szerializálására vagy deszerializálására szolgál. A tulajdonság használatának XmlAnyElementAttributes hatásának megtekintéséhez hozzon létre egy UnknownElements.xml nevű XML-dokumentumot a SerializeObjectMain metódus metódusban való futtatásával. Szerkessze az eredményként kapott dokumentumot más (ismeretlen) elemek belefoglalásához. A metódusban megjegyzést fűzhet a SerializeObjectMain híváshoz, és feloldhatja a DeserializeObject metódushoz való meghívást, amely kiírja az ismeretlen XML-elemek nevét és értékét.

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

Megjegyzések

Ezzel felülbírálhatja XmlAnyElementAttributes az objektumok egy csoportjának viselkedését XmlAnyElementAttribute . Az osztály több példánya is alkalmazható egy XmlAnyElementAttribute osztálytagra, feltéve, hogy mindegyik példánynak külön Name tulajdonságértéke van. Ez arra utasítja az XmlSerializer ismeretlen elemeket, hogy az elnevezett elem alatt lévő ismeretlen elemeket gyűjtsék a megfelelő tömbbe. Emiatt az osztály több példánya XmlAnyElementAttribute is hozzáadható a XmlAnyElementAttributes.

Objektumkészlet XmlAnyElementAttribute felülbírálása:

  1. Hozzon létre egy XmlAnyElementAttributes.

  2. Hozza létre az objektumok készletét XmlAnyElementAttribute , és adja hozzá az egyes objektumokat a gyűjteményhez a Add metódus használatával.

  3. Hozzon létre egy XmlAttributes.

  4. Állítsa be a XmlAnyElements tulajdonságot a XmlAnyElementAttributes.

  5. Hozzon létre egy XmlAttributeOverrides.

  6. Adja hozzá a XmlAttributesXmlAttributeOverrides metódust a Add metódushoz.

  7. Hozzon létre egy példányt a XmlSerializer használatával.XmlAttributeOverrides

  8. Szerializáljon vagy deszerializáljon egy objektumhalmazt XmlAnyElementAttribute tartalmazó objektumot.

Konstruktorok

Név Description
XmlAnyElementAttributes()

Inicializálja a XmlAnyElementAttributes osztály új példányát.

Tulajdonságok

Név Description
Capacity

Lekéri vagy beállítja a tartalmazható elemek CollectionBase számát.

(Öröklődés forrása CollectionBase)
Count

Lekéri a .ICollection

Count

Lekéri a példányban CollectionBase található elemek számát. Ez a tulajdonság nem bírálható felül.

(Öröklődés forrása CollectionBase)
InnerList

ArrayList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)
Item[Int32]

Lekéri vagy beállítja a XmlAnyElementAttribute megadott indexet.

List

IList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)

Metódusok

Név Description
Add(XmlAnyElementAttribute)

Hozzáad egy XmlAnyElementAttribute elemet a gyűjteményhez.

Clear()

Eltávolítja az összes elemet a IListprogramból.

Clear()

Eltávolítja az összes objektumot a CollectionBase példányból. Ez a metódus nem bírálható felül.

(Öröklődés forrása CollectionBase)
Contains(XmlAnyElementAttribute)

Beolvas egy értéket, amely jelzi, hogy a megadott XmlAnyElementAttribute elem létezik-e a gyűjteményben.

CopyTo(XmlAnyElementAttribute[], Int32)

A teljes gyűjteményt átmásolja egy kompatibilis egydimenziós objektumtömbbe XmlElementAttribute a céltömb megadott indexétől kezdve.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetEnumerator()

Egy gyűjteményen keresztül iteráló enumerátort ad vissza.

GetEnumerator()

Egy enumerátort ad vissza, amely a példányon keresztül CollectionBase iterál.

(Öröklődés forrása CollectionBase)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IndexOf(XmlAnyElementAttribute)

Lekéri a megadott XmlAnyElementAttributeindexet.

Insert(Int32, XmlAnyElementAttribute)

Beszúr egy XmlAnyElementAttribute gyűjteménybe a megadott indexben.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnClear()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlésekor.

(Öröklődés forrása CollectionBase)
OnClearComplete()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlése után.

(Öröklődés forrása CollectionBase)
OnInsert(Int32, Object)

További egyéni folyamatokat hajt végre, mielőtt új elemet szúr be a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnInsertComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután beszúrt egy új elemet a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnRemove(Int32, Object)

További egyéni folyamatokat hajt végre, amikor eltávolít egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnRemoveComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután eltávolított egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnSet(Int32, Object, Object)

További egyéni folyamatokat hajt végre, mielőtt beállít egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnSetComplete(Int32, Object, Object)

További egyéni folyamatokat hajt végre, miután beállított egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnValidate(Object)

További egyéni folyamatokat hajt végre egy érték ellenőrzésekor.

(Öröklődés forrása CollectionBase)
Remove(XmlAnyElementAttribute)

Eltávolítja a megadottt XmlAnyElementAttribute a gyűjteményből.

RemoveAt(Int32)

Eltávolítja az IList elemet a megadott indexből.

RemoveAt(Int32)

Eltávolítja az elemet a példány megadott indexéből CollectionBase . Ez a módszer nem bírálható felül.

(Öröklődés forrása CollectionBase)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Név Description
ICollection.CopyTo(Array, Int32)

Másolja a tömb elemeit ICollection egy adott indextől kezdve.

ICollection.CopyTo(Array, Int32)

A teljes CollectionBase példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb megadott indexétől kezdve.

(Öröklődés forrása CollectionBase)
ICollection.IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a ICollection hozzáférés szinkronizálva van-e (a szál biztonságos).

ICollection.IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a CollectionBase hozzáférés szinkronizálva van-e (a szál biztonságos).

(Öröklődés forrása CollectionBase)
ICollection.SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.ICollection

ICollection.SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.CollectionBase

(Öröklődés forrása CollectionBase)
IList.Add(Object)

Elemet ad hozzá a IList.

IList.Add(Object)

Objektumot ad hozzá a CollectionBasevégéhez.

(Öröklődés forrása CollectionBase)
IList.Contains(Object)

Meghatározza, hogy az IList adott érték tartalmaz-e.

IList.Contains(Object)

Meghatározza, hogy az CollectionBase adott elem tartalmaz-e.

(Öröklődés forrása CollectionBase)
IList.IndexOf(Object)

Egy adott elem indexét határozza meg a IList.

IList.IndexOf(Object)

Megkeresi a megadott Object értéket, és a teljes első CollectionBaseelőfordulás nulla alapú indexét adja vissza.

(Öröklődés forrása CollectionBase)
IList.Insert(Int32, Object)

Beszúr egy elemet a IList megadott indexbe.

IList.Insert(Int32, Object)

Elemet szúr be a CollectionBase megadott indexbe.

(Öröklődés forrása CollectionBase)
IList.IsFixedSize

Egy értéket kap, amely jelzi, hogy a IList méret rögzített-e.

IList.IsFixedSize

Egy értéket kap, amely jelzi, hogy a CollectionBase méret rögzített-e.

(Öröklődés forrása CollectionBase)
IList.IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az IList írásvédett-e.

IList.IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az CollectionBase írásvédett-e.

(Öröklődés forrása CollectionBase)
IList.Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

IList.Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

(Öröklődés forrása CollectionBase)
IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását a IList.

IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását a CollectionBase.

(Öröklődés forrása CollectionBase)

Bővítő metódusok

Név Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes: