XmlAttributeOverrides.Add Método

Definición

Agrega un objeto XmlAttributes a la colección de objetos XmlAttributes.

Sobrecargas

Add(Type, XmlAttributes)

Agrega un objeto XmlAttributes a la colección de objetos XmlAttributes. El parámetro type especifica un objeto que va a ser reemplazado por el objeto XmlAttributes.

Add(Type, String, XmlAttributes)

Agrega un objeto XmlAttributes a la colección de objetos XmlAttributes. El parámetro type especifica un objeto que se va a reemplazar. El parámetro member especifica el nombre de un miembro que se va a reemplazar.

Add(Type, XmlAttributes)

Agrega un objeto XmlAttributes a la colección de objetos XmlAttributes. El parámetro type especifica un objeto que va a ser reemplazado por el objeto XmlAttributes.

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

Parámetros

type
Type

Tipo Type del objeto que se va a reemplazar.

attributes
XmlAttributes

Objeto XmlAttributes que representa los atributos reemplazados.

Ejemplos

En el ejemplo siguiente se serializa una clase denominada Band que se deriva de una clase denominada Orchestra. En el ejemplo se crea un XmlRootAttribute objeto y se asigna a la XmlRoot propiedad de un XmlAttributes objeto . A continuación, el ejemplo llama al Add método para agregar el XmlAttributes objeto al XmlAttributeOverrides objeto .

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);
      }
   }
}

Comentarios

El XmlAttributes objeto contiene una unión de objetos de atributo que hacen que invalide XmlSerializer su comportamiento de serialización predeterminado para un conjunto de objetos. Elija los objetos de atributo que se colocarán en el XmlAttributes objeto, en función de los comportamientos concretos que desee invalidar. Por ejemplo, serializa XmlSerializer un miembro de clase como un elemento XML de forma predeterminada. Si quiere que el miembro se serialice como un atributo XM en su lugar, cree un XmlAttributeAttribute, asígnelo a la XmlAttribute propiedad de y XmlAttributesagregue el XmlAttributes objeto al XmlAttributeOverrides objeto .

Use esta sobrecarga para invalidar o XmlRootAttribute XmlTypeAttribute.

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.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
.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
.NET Standard 2.0, 2.1
UWP 10.0

Add(Type, String, XmlAttributes)

Agrega un objeto XmlAttributes a la colección de objetos XmlAttributes. El parámetro type especifica un objeto que se va a reemplazar. El parámetro member especifica el nombre de un miembro que se va a reemplazar.

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);

Parámetros

type
Type

Type del objeto que se va a reemplazar.

member
String

Nombre del miembro que se va a reemplazar.

attributes
XmlAttributes

Objeto XmlAttributes que representa los atributos reemplazados.

Ejemplos

En el ejemplo siguiente se crea un XmlAttributeAttribute objeto y se asigna a la XmlAttribute propiedad de un XmlAttributes objeto . A continuación, en el ejemplo se agrega el XmlAttributes objeto a un XmlAttributeOverrides objeto antes de crear un XmlSerializerobjeto .

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;
}
}

Comentarios

El XmlAttributes objeto contiene una unión de objetos de atributo que hacen que invalide XmlSerializer su comportamiento de serialización predeterminado para un conjunto de objetos. Elija los objetos de atributo que se colocarán en el XmlAttributes objeto, en función de los comportamientos concretos que desee invalidar. Por ejemplo, serializa XmlSerializer un miembro de clase como un elemento XML de forma predeterminada. Si quiere que el miembro se serialice como un atributo XML en su lugar, debe crear un XmlAttributeAttribute, asignarlo a la XmlAttribute propiedad de y XmlAttributesagregar el XmlAttributes objeto al XmlAttributeOverrides objeto .

Use este método al intentar invalidar , XmlElementAttributeXmlAttributeAttribute, XmlArrayAttributeXmlArrayItemAttribute, o XmlIgnoreAttribute.

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.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
.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
.NET Standard 2.0, 2.1
UWP 10.0