Maison > développement back-end > C++ > Comment sérialiser des chaînes en tant que CDATA à l'aide de XmlSerializer en C# ?

Comment sérialiser des chaînes en tant que CDATA à l'aide de XmlSerializer en C# ?

Barbara Streisand
Libérer: 2025-01-13 06:59:42
original
246 Les gens l'ont consulté

How to Serialize Strings as CDATA Using XmlSerializer in C#?

Personnalisation de la sérialisation XML pour les chaînes CDATA en C#

Le standard .NET XmlSerializer ne gère pas directement la sérialisation des chaînes en tant que sections CDATA en XML. Cependant, une solution personnalisée peut être mise en œuvre pour y parvenir. Cela implique de créer une classe avec une propriété de chaîne publique et une propriété XmlCDataSection correspondante, qui est utilisée pour la sérialisation.

Pour ce faire, nous créons une propriété marquée de XmlIgnore pour contenir la valeur de chaîne et une autre propriété décorée de XmlElement qui renvoie un XmlCDataSection. L'attribut XmlElement spécifie le nom de l'élément XML et l'attribut XmlIgnore empêche la sérialisation directe de la propriété de chaîne.

Exemple de mise en œuvre :

<code class="language-csharp">[Serializable]
public class MyClass
{
    public MyClass() { }

    [XmlIgnore] // Prevents direct serialization
    public string MyStringProperty { get; set; }

    [XmlElement("MyString")] // Specifies the XML element name
    public System.Xml.XmlCDataSection MyStringCDATA
    {
        get
        {
            return new System.Xml.XmlDocument().CreateCDataSection(MyStringProperty);
        }
        set
        {
            MyStringProperty = value.Value;
        }
    }
}</code>
Copier après la connexion

Exemple de sérialisation :

<code class="language-csharp">MyClass myObject = new MyClass();
myObject.MyStringProperty = "<test>Hello World!</test>";

XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, myObject);
Console.WriteLine(writer.ToString());</code>
Copier après la connexion

Cet extrait de code montre comment utiliser la classe personnalisée pour sérialiser une chaîne en tant que section CDATA. Notez que le résultat variera en fonction du contenu de MyStringProperty. La propriété XmlCDataSection gère la conversion au format CDATA approprié lors de la sérialisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal