Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mensiri Rentetan sebagai CDATA Menggunakan XmlSerializer dalam C#?

Bagaimana untuk Mensiri Rentetan sebagai CDATA Menggunakan XmlSerializer dalam C#?

Barbara Streisand
Barbara Streisandasal
2025-01-13 06:59:42243semak imbas

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

Menyesuaikan Pensirilan XML untuk Rentetan CDATA dalam C#

Standard .NET XmlSerializer tidak secara langsung mengendalikan rentetan bersiri sebagai bahagian CDATA dalam XML. Walau bagaimanapun, penyelesaian tersuai boleh dilaksanakan untuk mencapai ini. Ini melibatkan penciptaan kelas dengan sifat rentetan awam dan sifat XmlCDataSection yang sepadan, yang digunakan untuk penyirian.

Untuk mencapai ini, kami mencipta sifat yang ditandakan dengan XmlIgnore untuk menahan nilai rentetan dan sifat lain yang dihiasi dengan XmlElement yang mengembalikan XmlCDataSection. Atribut XmlElement menentukan nama elemen XML dan atribut XmlIgnore menghalang siri langsung sifat rentetan.

Contoh Pelaksanaan:

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

Contoh Serialisasi:

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

Coretan kod ini menunjukkan cara menggunakan kelas tersuai untuk mensiri rentetan sebagai bahagian CDATA. Ambil perhatian bahawa output akan berbeza-beza bergantung pada kandungan MyStringProperty. Sifat XmlCDataSection mengendalikan penukaran kepada format CDATA yang sesuai semasa penyirian.

Atas ialah kandungan terperinci Bagaimana untuk Mensiri Rentetan sebagai CDATA Menggunakan XmlSerializer dalam C#?. 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