XmlAttributes.XmlIgnore Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob XmlSerializer ein öffentliches Feld oder eine öffentliche Lese-/Schreibeigenschaft serialisiert, oder legt diesen fest.

C#
public bool XmlIgnore { get; set; }

Eigenschaftswert

Boolean

true, wenn XmlSerializer das Feld oder die Eigenschaft nicht serialisieren soll, andernfalls false.

Beispiele

Im folgenden Beispiel wird eine Klasse namens Group"Serialisiert", die ein Element mit dem Namen Comment enthält, auf das die XmlIgnoreAttribute Anwendung angewendet wird. Im Beispiel wird ein XmlAttributes Objekt erstellt, und die XmlIgnore Eigenschaft wird falseso festgelegt, dass die XmlIgnoreAttributeEigenschaft überschrieben wird.

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

// This is the class that will be serialized.
public class Group
{
   // The GroupName value will be serialized--unless it's overridden.
   public string GroupName;

   /* This field will be ignored when serialized--
      unless it's overridden. */
   [XmlIgnoreAttribute]
   public string Comment;
}

public class Test
{
   public static void Main()
   {
      Test t = new Test();
      t.SerializeObject("IgnoreXml.xml");
   }

   // Return an XmlSerializer used for overriding.
   public XmlSerializer CreateOverrider()
   {
      // Create the XmlAttributeOverrides and XmlAttributes objects.
      XmlAttributeOverrides xOver = new XmlAttributeOverrides();
      XmlAttributes attrs = new XmlAttributes();

      /* Setting XmlIgnore to false overrides the XmlIgnoreAttribute
         applied to the Comment field. Thus it will be serialized.*/
      attrs.XmlIgnore = false;
      xOver.Add(typeof(Group), "Comment", attrs);

      /* Use the XmlIgnore to instruct the XmlSerializer to ignore
         the GroupName instead. */
      attrs = new XmlAttributes();
      attrs.XmlIgnore = true;
      xOver.Add(typeof(Group), "GroupName", attrs);

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

   public void SerializeObject(string filename)
   {
      // Create an XmlSerializer instance.
      XmlSerializer xSer = CreateOverrider();

      // Create the object to serialize and set its properties.
      Group myGroup = new Group();
      myGroup.GroupName = ".NET";
      myGroup.Comment = "My Comment...";

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

      // Serialize the object and close the TextWriter.
      xSer.Serialize(writer, myGroup);
      writer.Close();
   }
}

Hinweise

Standardmäßig werden alle öffentlichen Felder und öffentliche Lese-/Schreibeigenschaften durch die XmlSerializer. Das heißt, der Wert jedes öffentlichen Felds oder jeder Eigenschaft wird als XML-Element oder XML-Attribut in einer XML-Dokumentinstanz beibehalten.

Um die Standard serialisierung eines Felds oder einer Eigenschaft außer Kraft zu setzen, erstellen Sie ein XmlAttributes Objekt, und legen Sie dessen XmlIgnore Eigenschaft auf truefest. Add das Objekt eines XmlAttributeOverrides Objekts und den Typ des Zu ignorierenden Objekts und den Namen des zu ignorierenden Felds oder der Eigenschaft angeben.

Wenn ein XmlIgnoreAttribute Feld oder eine Eigenschaft angewendet wird, wird das Feld oder die Eigenschaft ignoriert. Sie können dieses Verhalten jedoch außer Kraft setzen, indem Sie ein XmlAttributes Objekt erstellen, XmlIgnore dessen Eigenschaft falsefestlegen und zu einem XmlAttributeOverrides Objekt hinzufügen, das den Typ des Objekts angibt, der das Feld oder die Eigenschaft enthält, und den Namen des Felds oder der Eigenschaft.

Gilt für

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
.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

Siehe auch