Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

XmlAttributes.XmlText propriété

 

Date de publication : novembre 2016

Obtient ou définit un objet qui fait en sorte que le XmlSerializer pour sérialiser un champ public ou une propriété en lecture/écriture publique comme texte XML.

Espace de noms:   System.Xml.Serialization
Assembly:  System.Xml (dans System.Xml.dll)

public XmlTextAttribute XmlText { get; set; }

Valeur de propriété

Type: System.Xml.Serialization.XmlTextAttribute

Un XmlTextAttribute qui substitue la sérialisation par défaut d’une propriété publique ou un champ.

Par défaut, un champ public ou une propriété en lecture/écriture publique est sérialisée comme un élément XML par le XmlSerializer. Cependant, il peut forcer le champ ou la propriété doit être sérialisé en tant que texte XML en appliquant un XmlTextAttribute au champ ou propriété.

System_CAPS_noteRemarque

Le XmlTextAttribute ne peut pas être appliqué à un champ ou une propriété qui retourne un tableau.

Pour substituer la sérialisation par défaut d’un champ ou une propriété (qui ne retourne pas un tableau), créez un XmlTextAttribute et assignez-la à la XmlText propriété d’un XmlAttributes objet. Ajouter le XmlAttributes de l’objet à un XmlAttributeOverrides de l’objet et de spécifier le type de l’objet qui contient le champ ou la propriété et le nom de ce champ ou la propriété.

L’exemple suivant sérialise la classe nommée Group, qui contient un champ nommé Comment. Pour remplacer la valeur par défaut manière XmlSerializer sérialise le champ, l’exemple crée un XmlAttributeOverrides et un XmlAttributes objet. L’exemple crée ensuite un XmlTextAttribute objet, ce qui affecte à la XmlText propriété et ajoute les XmlAttributes (avec le nom du champ à sérialiser comme texte XML) de l’objet à le XmlAttributeOverrides objet. Enfin, l’exemple crée un XmlSerializer à l’aide de la XmlAttributeOverrides objet.

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

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: