Partager via


XmlAnyElementAttributes Classe

Définition

Représente une collection d'objets XmlAnyElementAttribute.

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
Héritage
XmlAnyElementAttributes
Héritage
XmlAnyElementAttributes
Implémente

Exemples

L’exemple suivant crée un objet XmlAnyElementAttribute et l’ajoute à la collection d’objets accessibles via la XmlAnyElements propriété . est XmlAttributes ensuite ajouté à un XmlAttributeOverrides qui est utilisé pour créer un XmlSerializer. est XmlSerializer utilisé pour sérialiser ou désérialiser un objet. Pour voir l’effet de l’utilisation de la XmlAnyElementAttributes propriété , créez un document XML nommé UnknownElements.xml en exécutant la SerializeObject méthode dans la Main méthode . Modifiez le document résultant pour inclure d’autres éléments (inconnus). Commentez l’appel SerializeObject dans la Main méthode et supprimez les marques de commentaire de l’appel à la DeserializeObject méthode, ce qui affiche le nom et la valeur de tout élément XML inconnu.

#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

Remarques

Utilisez pour XmlAnyElementAttributes remplacer le comportement d’un ensemble d’objets XmlAnyElementAttribute . Plusieurs instances de la XmlAnyElementAttribute classe peuvent être appliquées à un membre de classe, tant que chaque instance a une valeur de propriété distincte Name . Cela indique à l’élément XmlSerializer de collecter des éléments inconnus sous l’élément nommé dans le tableau approprié. C’est pour cette raison que plusieurs instances de la XmlAnyElementAttribute classe peuvent être ajoutées XmlAnyElementAttributesau .

Pour remplacer un ensemble d’objets XmlAnyElementAttribute :

  1. Créez un XmlAnyElementAttributes.

  2. Créez l’ensemble d’objets XmlAnyElementAttribute et ajoutez chaque objet à la collection à l’aide de la Add méthode .

  3. Créez un XmlAttributes.

  4. Définissez la XmlAnyElements propriété sur XmlAnyElementAttributes.

  5. Créez un XmlAttributeOverrides.

  6. Ajoutez le XmlAttributes à à l’aide XmlAttributeOverrides de la Add méthode .

  7. Créez une instance de à l’aide XmlSerializer de XmlAttributeOverrides.

  8. Sérialiser ou désérialiser un objet qui contient l’ensemble d’objets XmlAnyElementAttribute .

Constructeurs

XmlAnyElementAttributes()

Initialise une nouvelle instance de la classe XmlAnyElementAttributes.

Propriétés

Capacity

Obtient ou définit le nombre d'éléments que CollectionBase peut contenir.

(Hérité de CollectionBase)
Count

Obtient le nombre d’éléments contenus dans le ICollection.

Count

Obtient le nombre d'éléments contenus dans l'instance CollectionBase. Cette propriété ne peut pas être remplacée.

(Hérité de CollectionBase)
InnerList

Obtient ArrayList contenant la liste des éléments dans l'instance de CollectionBase.

(Hérité de CollectionBase)
Item[Int32]

Obtient ou définit le XmlAnyElementAttribute à l'index spécifié.

List

Obtient IList contenant la liste des éléments dans l'instance de CollectionBase.

(Hérité de CollectionBase)

Méthodes

Add(XmlAnyElementAttribute)

Ajoute un XmlAnyElementAttribute à la collection.

Clear()

Supprime tous les éléments de IList.

Clear()

Supprime tous les objets de l'instance de CollectionBase. Cette méthode ne peut pas être substituée.

(Hérité de CollectionBase)
Contains(XmlAnyElementAttribute)

Obtient une valeur qui indique si le XmlAnyElementAttribute spécifié existe dans la collection.

CopyTo(XmlAnyElementAttribute[], Int32)

Copie l'ensemble de la collection dans un tableau à une dimension des objets XmlElementAttribute, en démarrant dans l'index spécifié du tableau cible.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui itère au sein d’une collection.

GetEnumerator()

Retourne un énumérateur qui itère au sein de l'instance CollectionBase.

(Hérité de CollectionBase)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IndexOf(XmlAnyElementAttribute)

Obtient l'index du XmlAnyElementAttribute spécifié.

Insert(Int32, XmlAnyElementAttribute)

Insère un XmlAnyElementAttribute dans la collection, à l'index spécifié.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnClear()

Effectue des traitements personnalisés supplémentaires pendant l’effacement du contenu de l’instance de CollectionBase.

(Hérité de CollectionBase)
OnClearComplete()

Exécute des processus personnalisés supplémentaires après l'effacement du contenu de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnInsert(Int32, Object)

Exécute les processus personnalisés supplémentaires avant l'insertion d'un nouvel élément dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnInsertComplete(Int32, Object)

Exécute les processus personnalisés supplémentaires après l'insertion d'un nouvel élément dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnRemove(Int32, Object)

Exécute des processus personnalisés supplémentaires lors de la suppression d'un élément de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnRemoveComplete(Int32, Object)

Exécute des processus personnalisés supplémentaires après la suppression d'un élément de l'instance de CollectionBase.

(Hérité de CollectionBase)
OnSet(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires avant la définition d'une valeur dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnSetComplete(Int32, Object, Object)

Exécute des processus personnalisés supplémentaires après la définition d'une valeur dans l'instance de CollectionBase.

(Hérité de CollectionBase)
OnValidate(Object)

Exécute des processus personnalisés supplémentaires lors de la validation d'une valeur.

(Hérité de CollectionBase)
Remove(XmlAnyElementAttribute)

Supprime l’objet XmlAnyElementAttribute spécifié de la collection.

RemoveAt(Int32)

Supprime l'élément IList au niveau de l'index spécifié.

RemoveAt(Int32)

Supprime l'élément à l'index spécifié de l'instance de CollectionBase. Cette méthode n'est pas substituable.

(Hérité de CollectionBase)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les éléments de ICollection vers un tableau, en commençant à un index particulier.

ICollection.CopyTo(Array, Int32)

Copie l'ensemble de l'objet CollectionBase vers un objet Array unidimensionnel compatible, en commençant à l'index spécifié du tableau cible.

(Hérité de CollectionBase)
ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès à ICollection est synchronisé (thread-safe).

ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès à CollectionBase est synchronisé (thread-safe).

(Hérité de CollectionBase)
ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à ICollection.

ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l’accès à CollectionBase.

(Hérité de CollectionBase)
IList.Add(Object)

Ajoute un élément à IList.

IList.Add(Object)

Ajoute un objet à la fin de la CollectionBase.

(Hérité de CollectionBase)
IList.Contains(Object)

Détermine si IList contient une valeur spécifique.

IList.Contains(Object)

Détermine si CollectionBase contient un élément spécifique.

(Hérité de CollectionBase)
IList.IndexOf(Object)

Détermine l'index d'un élément spécifique d'IList.

IList.IndexOf(Object)

Recherche le Object spécifié et retourne l’index de base zéro de la première occurrence dans l’ensemble du CollectionBase.

(Hérité de CollectionBase)
IList.Insert(Int32, Object)

Insère un élément dans IList à l’index spécifié.

IList.Insert(Int32, Object)

Insère un élément dans la classe CollectionBase au niveau de l'index spécifié.

(Hérité de CollectionBase)
IList.IsFixedSize

Obtient une valeur indiquant si IList est de taille fixe.

IList.IsFixedSize

Obtient une valeur indiquant si CollectionBase est de taille fixe.

(Hérité de CollectionBase)
IList.IsReadOnly

Obtient une valeur indiquant si IList est en lecture seule.

IList.IsReadOnly

Obtient une valeur indiquant si CollectionBase est en lecture seule.

(Hérité de CollectionBase)
IList.Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.

IList.Item[Int32]

Obtient ou définit l'élément au niveau de l'index spécifié.

(Hérité de CollectionBase)
IList.Remove(Object)

Supprime la première occurrence d’un objet spécifique de IList.

IList.Remove(Object)

Supprime la première occurrence d’un objet spécifique de CollectionBase.

(Hérité de CollectionBase)

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à