Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

XmlAttributes classe

 

Date de publication : novembre 2016

Représente une collection d’objets attributs qui contrôlent la façon dont le XmlSerializer sérialise et désérialise un objet.

Espace de noms:   System.Xml.Serialization
Assembly:  System.Xml (dans System.Xml.dll)

System.Object
  System.Xml.Serialization.XmlAttributes

public class XmlAttributes

NomDescription
System_CAPS_pubmethodXmlAttributes()

Initialise une nouvelle instance de la classe XmlAttributes.

System_CAPS_pubmethodXmlAttributes(ICustomAttributeProvider)

Cette API prend en charge l’infrastructure de produit et n’est pas destinée à être utilisée directement depuis votre code. Initialise une nouvelle instance de la XmlAttributes classe et personnalise la XmlSerializer sérialise et désérialise un objet.

NomDescription
System_CAPS_pubpropertyXmlAnyAttribute

Obtient ou définit le XmlAnyAttributeAttribute de remplacement.

System_CAPS_pubpropertyXmlAnyElements

Obtient la collection de XmlAnyElementAttribute objets de remplacement.

System_CAPS_pubpropertyXmlArray

Obtient ou définit un objet qui spécifie comment la XmlSerializer sérialise une propriété de champ ou de lecture/écriture publique qui retourne un tableau.

System_CAPS_pubpropertyXmlArrayItems

Obtient ou définit une collection d’objets qui spécifient comment la XmlSerializer sérialise les éléments insérés dans un tableau retourné par une propriété de champ ou de lecture/écriture publique.

System_CAPS_pubpropertyXmlAttribute

Obtient ou définit un objet qui spécifie comment la XmlSerializer sérialise un champ public ou une propriété en lecture/écriture publique comme un attribut XML.

System_CAPS_pubpropertyXmlChoiceIdentifier

Obtient ou définit un objet qui vous permet de faire la distinction entre un ensemble de choix.

System_CAPS_pubpropertyXmlDefaultValue

Obtient ou définit la valeur par défaut d’un élément ou attribut XML.

System_CAPS_pubpropertyXmlElements

Obtient une collection d’objets qui spécifient comment la XmlSerializer sérialise une propriété de champ ou de lecture/écriture publique comme un élément XML.

System_CAPS_pubpropertyXmlEnum

Obtient ou définit un objet qui spécifie comment la XmlSerializer sérialise un membre de l’énumération.

System_CAPS_pubpropertyXmlIgnore

Obtient ou définit une valeur qui spécifie si le XmlSerializer sérialise un champ public ou une propriété en lecture/écriture publique.

System_CAPS_pubpropertyXmlns

Obtient ou définit une valeur qui spécifie s’il faut conserver toutes les déclarations d’espace de noms lorsqu’un objet qui contient un membre qui retourne un XmlSerializerNamespaces objet est remplacé.

System_CAPS_pubpropertyXmlRoot

Obtient ou définit un objet qui spécifie comment la XmlSerializer sérialise une classe comme élément racine XML.

System_CAPS_pubpropertyXmlText

Obtient ou définit un objet qui fait en sorte que le XmlSerializer pour sérialiser un champ public ou une propriété en lecture/écriture publique comme texte XML.

System_CAPS_pubpropertyXmlType

Obtient ou définit un objet qui spécifie comment la XmlSerializer sérialise une classe à laquelle le XmlTypeAttribute a été appliqué.

NomDescription
System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

Création du XmlAttributes fait partie d’un processus qui substitue la valeur par défaut manière XmlSerializer sérialise les instances de classe. Par exemple, supposons que vous souhaitez sérialiser un objet qui est créé à partir d’une DLL qui possède une source inaccessible. À l’aide de la XmlAttributeOverrides, vous pouvez augmenter ou de contrôler comment l’objet est sérialisé.

Les membres de la XmlAttributes classe correspondent directement à une famille de classes d’attributs qui contrôlent la sérialisation. Par exemple, le XmlText propriété doit être définie sur une XmlTextAttribute, qui vous permet de substituer la sérialisation d’un champ ou une propriété en commandant le XmlSerializer pour sérialiser la valeur de propriété en tant que texte XML. Pour obtenir une liste complète des attributs qui contrôlent la sérialisation, consultez le XmlSerializer.

Pour plus d’informations sur l’utilisation de la XmlAttributeOverrides avec le XmlAttributes de classe, consultez la page Comment : spécifier un nom d'élément différent pour un flux XML.

L’exemple suivant sérialise une instance d’une classe nommée Orchestra, qui contient un champ unique nommé Instruments qui retourne un tableau de Instrument objets. Une seconde classe nommée Brass hérite la Instrument classe. L’exemple crée un XmlAttributes pour substituer le Instrument champ--permettant au champ d’accepter Brass objets et ajoute les XmlAttributes objet à une instance de la XmlAttributeOverrides classe.

using System;
using System.IO;
using System.Xml.Serialization;

public class Orchestra
{
   public Instrument[] Instruments;
}   

public class Instrument
{
   public string Name;
}

public class Brass:Instrument
{
   public bool IsValved;
}

public class Run
{
    public static void Main()
    {
       Run test = new Run();
       test.SerializeObject("Override.xml");
       test.DeserializeObject("Override.xml");
    }

    public void SerializeObject(string filename)
    {
      /* Each overridden field, property, or type requires 
      an XmlAttributes object. */
      XmlAttributes attrs = new XmlAttributes();

      /* Create an XmlElementAttribute to override the 
      field that returns Instrument objects. The overridden field
      returns Brass objects instead. */
      XmlElementAttribute attr = new XmlElementAttribute();
      attr.ElementName = "Brass";
      attr.Type = typeof(Brass);

      // Add the element to the collection of elements.
      attrs.XmlElements.Add(attr);

      // Create the XmlAttributeOverrides object.
      XmlAttributeOverrides attrOverrides = new XmlAttributeOverrides();

      /* Add the type of the class that contains the overridden 
      member and the XmlAttributes to override it with to the 
      XmlAttributeOverrides object. */
      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Create the XmlSerializer using the XmlAttributeOverrides.
      XmlSerializer s = 
      new XmlSerializer(typeof(Orchestra), attrOverrides);

      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);

      // Create the object that will be serialized.
      Orchestra band = new Orchestra();

      // Create an object of the derived type.
      Brass i = new Brass();
      i.Name = "Trumpet";
      i.IsValved = true;
      Instrument[] myInstruments = {i};
      band.Instruments = myInstruments;

      // Serialize the object.
      s.Serialize(writer,band);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      XmlAttributeOverrides attrOverrides = 
         new XmlAttributeOverrides();
      XmlAttributes attrs = new XmlAttributes();

      // Create an XmlElementAttribute to override the Instrument.
      XmlElementAttribute attr = new XmlElementAttribute();
      attr.ElementName = "Brass";
      attr.Type = typeof(Brass);

      // Add the element to the collection of elements.
      attrs.XmlElements.Add(attr);

      attrOverrides.Add(typeof(Orchestra), "Instruments", attrs);

      // Create the XmlSerializer using the XmlAttributeOverrides.
      XmlSerializer s = 
      new XmlSerializer(typeof(Orchestra), attrOverrides);

      FileStream fs = new FileStream(filename, FileMode.Open);
      Orchestra band = (Orchestra) s.Deserialize(fs);
      Console.WriteLine("Brass:");

      /* The difference between deserializing the overridden 
      XML document and serializing it is this: To read the derived 
      object values, you must declare an object of the derived type 
      (Brass), and cast the Instrument instance to it. */
      Brass b;
      foreach(Instrument i in band.Instruments) 
      {
         b = (Brass)i;
         Console.WriteLine(
         b.Name + "\n" + 
         b.IsValved);
      }
   }
}

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: