Maison > développement back-end > C++ > Comment puis-je sérialiser des chaînes sous forme de CDATA à l'aide de .NET XmlSerializer ?

Comment puis-je sérialiser des chaînes sous forme de CDATA à l'aide de .NET XmlSerializer ?

Linda Hamilton
Libérer: 2025-01-13 09:49:42
original
583 Les gens l'ont consulté

How Can I Serialize Strings as CDATA Using the .NET XmlSerializer?

Utilisation de .NET XmlSerializer pour générer des chaînes sous forme de CDATA

Le .NET XmlSerializer ne prend pas directement en charge la sérialisation des chaînes sous forme de CDATA à l'aide d'attributs. Cependant, une solution personnalisée utilisant un getter et un setter peut y parvenir.

Voici un cours démontrant cette technique :

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

    [XmlIgnore]
    public string MyString { get; set; }

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

Exemple de sérialisation :

<code class="language-csharp">// Create a MyClass instance
MyClass mc = new MyClass();
mc.MyString = "<test>Hello World</test>";

// Create the XmlSerializer and serialize the object
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, mc);

// Display the serialized XML
Console.WriteLine(writer.ToString());</code>
Copier après la connexion

Résultat attendu :

La sortie affichera la chaîne incluse dans une section CDATA :

<code class="language-xml"><?xml version="1.0" encoding="utf-16"?><myclass xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><mystring><![CDATA[<test>Hello World</test>]]></mystring></myclass></code>
Copier après la connexion

Cette méthode sérialise efficacement les chaînes sous forme de CDATA à l'aide de XmlSerializer, contournant le manque de prise en charge directe des attributs.

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