XmlAttributeOverrides.Add Méthode

Définition

Ajoute un objet XmlAttributes à la collection d'objets XmlAttributes.

Surcharges

Add(Type, XmlAttributes)

Ajoute un objet XmlAttributes à la collection d'objets XmlAttributes. Le paramètre type spécifie l'objet auquel se substituera l'objet XmlAttributes.

Add(Type, String, XmlAttributes)

Ajoute un objet XmlAttributes à la collection d'objets XmlAttributes. Le paramètre type spécifie l'objet qui sera substitué. Le paramètre member spécifie le nom du membre à substituer.

Add(Type, XmlAttributes)

Source:
XmlAttributeOverrides.cs
Source:
XmlAttributeOverrides.cs
Source:
XmlAttributeOverrides.cs

Ajoute un objet XmlAttributes à la collection d'objets XmlAttributes. Le paramètre type spécifie l'objet auquel se substituera l'objet XmlAttributes.

C#
public void Add(Type type, System.Xml.Serialization.XmlAttributes attributes);

Paramètres

type
Type

Type de l'objet à substituer.

attributes
XmlAttributes

Objet XmlAttributes qui représente les attributs de substitution.

Exemples

L’exemple suivant sérialise une classe nommée Band qui est dérivée d’une classe nommée Orchestra. L’exemple crée un XmlRootAttribute objet et l’affecte à la XmlRoot propriété d’un XmlAttributes objet . L’exemple appelle ensuite la Add méthode pour ajouter l’objet XmlAttributes à l’objet XmlAttributeOverrides .

C#
using System;
using System.IO;
using System.Xml.Serialization;

/* This is the class that will be overridden. The XmlIncludeAttribute
tells the XmlSerializer that the overriding type exists. */

[XmlInclude(typeof(Band))]
public class Orchestra
{
   public Instrument[] Instruments;
}

// This is the overriding class.
public class Band:Orchestra
{
   public string BandName;
}

public class Instrument
{
   public string Name;
}

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 object that is being overridden requires
      an XmlAttributes object. */
      XmlAttributes attrs = new XmlAttributes();

      // An XmlRootAttribute allows overriding the Orchestra class.
      XmlRootAttribute xmlRoot = new XmlRootAttribute();

      // Set the object to the XmlAttribute.XmlRoot property.
      attrs.XmlRoot = xmlRoot;

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

      // Add the XmlAttributes to the XmlAttributeOverrrides.
      attrOverrides.Add(typeof(Orchestra), 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 using the derived class.
      Band band = new Band();
      band.BandName = "NewBand";

      // Create an Instrument.
      Instrument i = new Instrument();
      i.Name = "Trumpet";
      Instrument[] myInstruments = {i};
      band.Instruments = myInstruments;

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

   public void DeserializeObject(string filename)
   {
      XmlAttributes attrs = new XmlAttributes();
      XmlRootAttribute attr = new XmlRootAttribute();
      attrs.XmlRoot = attr;
      XmlAttributeOverrides attrOverrides =
         new XmlAttributeOverrides();

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

      XmlSerializer s =
      new XmlSerializer(typeof(Orchestra), attrOverrides);

      FileStream fs = new FileStream(filename, FileMode.Open);

      // Deserialize the Band object.
      Band band = (Band) s.Deserialize(fs);
      Console.WriteLine("Brass:");

      foreach(Instrument i in band.Instruments)
      {
         Console.WriteLine(i.Name);
      }
   }
}

Remarques

L’objet XmlAttributes contient une union d’objets d’attribut qui provoquent le remplacement de XmlSerializer son comportement de sérialisation par défaut pour un ensemble d’objets. Vous choisissez les objets d’attribut à placer dans l’objet XmlAttributes , en fonction des comportements particuliers que vous souhaitez remplacer. Par exemple, sérialise XmlSerializer un membre de classe en tant qu’élément XML par défaut. Si vous souhaitez que le membre soit sérialisé en tant qu’attribut XM à la place, vous devez créer un XmlAttributeAttribute, l’affecter à la XmlAttribute propriété d’un XmlAttributes, puis ajouter l’objet XmlAttributes à l’objet XmlAttributeOverrides .

Utilisez cette surcharge pour remplacer un XmlRootAttribute ou XmlTypeAttribute.

Voir aussi

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Add(Type, String, XmlAttributes)

Source:
XmlAttributeOverrides.cs
Source:
XmlAttributeOverrides.cs
Source:
XmlAttributeOverrides.cs

Ajoute un objet XmlAttributes à la collection d'objets XmlAttributes. Le paramètre type spécifie l'objet qui sera substitué. Le paramètre member spécifie le nom du membre à substituer.

C#
public void Add(Type type, string member, System.Xml.Serialization.XmlAttributes attributes);
C#
public void Add(Type type, string member, System.Xml.Serialization.XmlAttributes? attributes);

Paramètres

type
Type

Type de l'objet à substituer.

member
String

Nom du membre à substituer.

attributes
XmlAttributes

Objet XmlAttributes qui représente les attributs de substitution.

Exemples

L’exemple suivant crée un XmlAttributeAttribute objet et l’affecte à la XmlAttribute propriété d’un XmlAttributes objet . L’exemple ajoute ensuite l’objet XmlAttributes à un XmlAttributeOverrides objet, avant de créer un XmlSerializer.

C#
// This is the class that will be serialized.
public class Group
{
   public string GroupName;
   [XmlAttribute]
   public int GroupCode;
}

public class Sample
{
public XmlSerializer CreateOverrider()
{
   // Create an XmlAttributeOverrides object.
   XmlAttributeOverrides xOver = new XmlAttributeOverrides();

   /* Create an XmlAttributeAttribute to override the base class
   object's XmlAttributeAttribute object. Give the overriding object
   a new attribute name ("Code"). */
   XmlAttributeAttribute xAtt = new XmlAttributeAttribute();
   xAtt.AttributeName = "Code";

   /* Create an instance of the XmlAttributes class and set the
   XmlAttribute property to the XmlAttributeAttribute object. */
   XmlAttributes attrs = new XmlAttributes();
   attrs.XmlAttribute = xAtt;

   /* Add the XmlAttributes object to the XmlAttributeOverrides
      and specify the type and member name to override. */
   xOver.Add(typeof(Group), "GroupCode", attrs);

   XmlSerializer xSer = new XmlSerializer(typeof(Group), xOver);
   return xSer;
}
}

Remarques

L’objet XmlAttributes contient une union d’objets d’attribut qui provoquent le remplacement de XmlSerializer son comportement de sérialisation par défaut pour un ensemble d’objets. Vous choisissez les objets d’attribut à placer dans l’objet XmlAttributes , en fonction des comportements particuliers que vous souhaitez remplacer. Par exemple, sérialise XmlSerializer un membre de classe en tant qu’élément XML par défaut. Si vous souhaitez que le membre soit sérialisé en tant qu’attribut XML à la place, vous devez créer un XmlAttributeAttribute, l’affecter à la XmlAttribute propriété d’un XmlAttributeset ajouter l’objet XmlAttributes à l’objet XmlAttributeOverrides .

Utilisez cette méthode lorsque vous tentez de remplacer un XmlElementAttribute, XmlAttributeAttribute, XmlArrayAttribute, XmlArrayItemAttributeou XmlIgnoreAttribute.

Voir aussi

S’applique à

.NET 10 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0