Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source

XmlAttributes.XmlText, propriété

Obtient ou définit un objet qui commande à XmlSerializer de 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
XmlTextAttribute qui substitue la sérialisation par défaut d'une propriété publique ou d'un champ public.

Par défaut, XmlSerializer sérialise les champs publics et les propriétés en lecture/écriture publiques comme des éléments XML. Vous pouvez toutefois imposer la sérialisation d'un champ ou d'une propriété comme texte XML en appliquant XmlTextAttribute à ce champ ou à cette propriété.

RemarqueRemarque

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 d'une propriété (qui ne retourne pas un tableau), créez un XmlTextAttribute et assignez-le à la propriété XmlText d'un objet XmlAttributes. Ajoutez l'objet XmlAttributes à un objet XmlAttributeOverrides et spécifiez le type de l'objet qui contient le champ ou la propriété substituée ainsi que le nom de ce champ ou de cette propriété.

L'exemple suivant sérialise la classe nommée Group qui contient un champ nommé Comment. Pour substituer le mode de sérialisation par défaut du champ XmlSerializer, l'exemple crée un objet XmlAttributeOverrides et un objet XmlAttributes. L'exemple crée ensuite un objet XmlTextAttribute qu'il assigne à la propriété XmlText et ajoute l'objet XmlAttributes (avec le nom du champ à sérialiser comme texte XML) à l'objet XmlAttributeOverrides. Enfin, l'exemple crée XmlSerializer en utilisant l'objet XmlAttributeOverrides.


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


.NET Framework

Pris en charge dans : 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Bibliothèque de classes portable

Pris en charge dans : Bibliothèque de classes portable

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

.NET pour les applications Windows Phone

Pris en charge dans : Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft