Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mensiri Rentetan sebagai CDATA Menggunakan .NET XmlSerializer?

Bagaimanakah Saya Boleh Mensiri Rentetan sebagai CDATA Menggunakan .NET XmlSerializer?

Linda Hamilton
Linda Hamiltonasal
2025-01-13 09:49:42625semak imbas

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

Menggunakan .NET XmlSerializer untuk Output Rentetan sebagai CDATA

.NET XmlSerializer tidak menyokong secara langsung rentetan bersiri sebagai CDATA menggunakan atribut. Walau bagaimanapun, penyelesaian tersuai menggunakan pengambil dan penetap boleh mencapai ini.

Berikut ialah kelas yang menunjukkan teknik ini:

<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>

Contoh Serialisasi:

<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>

Keluaran Jangkaan:

Output akan menunjukkan rentetan yang disertakan dalam bahagian 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>

Kaedah ini secara berkesan menyusun rentetan sebagai CDATA menggunakan XmlSerializer, mengelakkan kekurangan sokongan atribut langsung.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensiri Rentetan sebagai CDATA Menggunakan .NET XmlSerializer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn