Auf Englisch lesen

Freigeben über


XmlAttributeOverrides.Add Methode

Definition

Fügt der Auflistung von XmlAttributes-Objekten ein XmlAttributes-Objekt hinzu.

Überlädt

Add(Type, XmlAttributes)

Fügt der Auflistung von XmlAttributes-Objekten ein XmlAttributes-Objekt hinzu. Der type-Parameter gibt ein Objekt an, das vom XmlAttributes-Objekt überschrieben werden soll.

Add(Type, String, XmlAttributes)

Fügt der Auflistung von XmlAttributes-Objekten ein XmlAttributes-Objekt hinzu. Der type-Parameter gibt ein Objekt an, das überschrieben werden soll. Der member-Parameter gibt den Namen des zu überschreibenden Members an.

Add(Type, XmlAttributes)

Quelle:
XmlAttributeOverrides.cs
Quelle:
XmlAttributeOverrides.cs
Quelle:
XmlAttributeOverrides.cs

Fügt der Auflistung von XmlAttributes-Objekten ein XmlAttributes-Objekt hinzu. Der type-Parameter gibt ein Objekt an, das vom XmlAttributes-Objekt überschrieben werden soll.

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

Parameter

type
Type

Der Type des Objekts, das überschrieben wird.

attributes
XmlAttributes

Ein XmlAttributes-Objekt, das die überschreibenden Attribute darstellt.

Beispiele

Im folgenden Beispiel wird eine Klasse namens Band serialisiert, die von einer Klasse mit dem Namen Orchestraabgeleitet wird. Im Beispiel wird ein XmlRootAttribute -Objekt erstellt und der XmlRoot -Eigenschaft eines XmlAttributes -Objekts zugewiesen. Im Beispiel wird dann die Add -Methode aufgerufen, um das XmlAttributes -Objekt dem XmlAttributeOverrides -Objekt hinzuzufügen.

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

Hinweise

Das XmlAttributes -Objekt enthält eine Union von Attributobjekten, die dazu führen, dass das XmlSerializer Standardserialisierungsverhalten für eine Gruppe von Objekten überschrieben wird. Sie wählen die Attributobjekte aus, die XmlAttributes im Objekt platziert werden sollen, je nachdem, welche Verhaltensweisen Sie überschreiben möchten. Beispielsweise serialisiert der XmlSerializer standardmäßig ein Klassenmember als XML-Element. Wenn das Element stattdessen als XM-Attribut serialisiert werden soll, erstellen Sie ein XmlAttributeAttribute, weisen es der XmlAttribute Eigenschaft eines XmlAttributeszu und fügen das XmlAttributes Objekt dem XmlAttributeOverrides -Objekt hinzu.

Verwenden Sie diese Überladung, um ein XmlRootAttribute oder XmlTypeAttributeaußer Kraft zu setzen.

Weitere Informationen

Gilt für:

.NET 10 und andere Versionen
Produkt Versionen
.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)

Quelle:
XmlAttributeOverrides.cs
Quelle:
XmlAttributeOverrides.cs
Quelle:
XmlAttributeOverrides.cs

Fügt der Auflistung von XmlAttributes-Objekten ein XmlAttributes-Objekt hinzu. Der type-Parameter gibt ein Objekt an, das überschrieben werden soll. Der member-Parameter gibt den Namen des zu überschreibenden Members an.

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

Parameter

type
Type

Der Type des zu überschreibenden Objekts.

member
String

Der Name des zu überschreibenden Members.

attributes
XmlAttributes

Ein XmlAttributes-Objekt, das die überschreibenden Attribute darstellt.

Beispiele

Im folgenden Beispiel wird ein XmlAttributeAttribute -Objekt erstellt und der XmlAttribute -Eigenschaft eines XmlAttributes -Objekts zugewiesen. Im Beispiel wird das XmlAttributes -Objekt dann einem XmlAttributeOverrides -Objekt hinzugefügt, bevor ein XmlSerializererstellt wird.

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

Hinweise

Das XmlAttributes -Objekt enthält eine Union von Attributobjekten, die dazu führen, dass das XmlSerializer Standardserialisierungsverhalten für eine Gruppe von Objekten überschrieben wird. Sie wählen die Attributobjekte aus, die XmlAttributes im Objekt platziert werden sollen, je nachdem, welche Verhaltensweisen Sie überschreiben möchten. Beispielsweise serialisiert der XmlSerializer standardmäßig ein Klassenmember als XML-Element. Wenn das Element stattdessen als XML-Attribut serialisiert werden soll, erstellen Sie ein XmlAttributeAttribute, weisen Sie es der XmlAttribute Eigenschaft eines XmlAttributeszu und fügen das XmlAttributes Objekt dem XmlAttributeOverrides -Objekt hinzu.

Verwenden Sie diese Methode, wenn Sie versuchen, ein XmlElementAttribute, , XmlArrayAttributeXmlAttributeAttribute, XmlArrayItemAttributeoder außer Kraft zu setzenXmlIgnoreAttribute.

Weitere Informationen

Gilt für:

.NET 10 und andere Versionen
Produkt Versionen
.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