XmlAttributes.XmlText Propiedad

Definición

Obtiene o establece un objeto que instruye al objeto XmlSerializer para que serialice un campo público o una propiedad pública de lectura/escritura como texto XML.

C#
public System.Xml.Serialization.XmlTextAttribute XmlText { get; set; }
C#
public System.Xml.Serialization.XmlTextAttribute? XmlText { get; set; }

Valor de propiedad

XmlTextAttribute que reemplaza la serialización predeterminada de un campo público o una propiedad pública.

Ejemplos

En el ejemplo siguiente se serializa la clase denominada Group, que contiene un campo denominado Comment. Para invalidar la forma predeterminada en que XmlSerializer serializa el campo, en el ejemplo se crea un XmlAttributeOverrides objeto y .XmlAttributes A continuación, el ejemplo crea un XmlTextAttribute objeto , que asigna a la XmlText propiedad y agrega el XmlAttributes objeto (con el nombre del campo que se va a serializar como texto XML) al XmlAttributeOverrides objeto . Por último, en el ejemplo se crea un XmlSerializer con el XmlAttributeOverrides objeto .

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

// This is the class that will be serialized.
public class Group
{
   public string GroupName;

   // This field will be serialized as XML text.
   public string Comment;
}

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

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

      /* Create an XmlTextAttribute and assign it to the XmlText
      property. This instructs the XmlSerializer to treat the
      Comment field as XML text. */
      XmlTextAttribute xText = new XmlTextAttribute();
      xAttrs.XmlText = xText;
      xOver.Add(typeof(Group), "Comment", xAttrs);

      // Create the XmlSerializer, and return it.
      return new XmlSerializer(typeof(Group), xOver);
   }

   public void SerializeObject(string filename)
   {
      // Create an instance of the XmlSerializer class.
      XmlSerializer mySerializer =  CreateOverrider();
      // Writing the file requires a TextWriter.
      TextWriter writer = new StreamWriter(filename);

      // Create an instance of the class that will be serialized.
      Group myGroup = new Group();

      // Set the object properties.
      myGroup.GroupName = ".NET";
      myGroup.Comment = "Great Stuff!";
      // Serialize the class, and close the TextWriter.
      mySerializer.Serialize(writer, myGroup);
      writer.Close();
   }

   public void DeserializeObject(string filename)
   {
      XmlSerializer mySerializer = CreateOverrider();
      FileStream fs = new FileStream(filename, FileMode.Open);
      Group myGroup = (Group)
      mySerializer.Deserialize(fs);
      Console.WriteLine(myGroup.GroupName);
      Console.WriteLine(myGroup.Comment);
   }
}

Comentarios

De forma predeterminada, un campo público o una propiedad de lectura y escritura pública se serializa como un elemento XML mediante XmlSerializer. Sin embargo, puede forzar que el campo o la propiedad se serialicen como texto XML aplicando un XmlTextAttribute al campo o propiedad.

Nota

No XmlTextAttribute se puede aplicar a un campo o propiedad que devuelve una matriz.

Para invalidar la serialización predeterminada de un campo o propiedad (que no devuelve una matriz), cree y XmlTextAttribute asígnela a la XmlText propiedad de un XmlAttributes objeto . Agregue el XmlAttributes objeto a un XmlAttributeOverrides objeto y especifique el tipo del objeto que contiene el campo o la propiedad invalidados y el nombre del campo o propiedad invalidados.

Se aplica a

Produto Versións
.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
.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