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

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

Linda Hamilton
Lepaskan: 2025-01-13 10:30:44
asal
227 orang telah melayarinya

How Can I Serialize a String as CDATA Using .NET's XmlSerializer?

Penyelesaian bijak untuk kekurangan atribut CDATA dalam .NET XmlSerializer

XmlSerializer dalam rangka kerja .NET menyediakan fungsi yang berkuasa untuk menyerikan objek ke dalam dokumen XML. Walau bagaimanapun, ia tidak mempunyai atribut langsung untuk menentukan siri rentetan kepada CDATA.

Penyelesaian kreatif

Untuk mengatasi had ini, kita boleh menggunakan penyelesaian yang bijak. Dengan melaksanakan sifat tersuai yang merangkumi tingkah laku CDATA yang diingini, kita boleh mencapai kesan yang diingini.

<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>
Salin selepas log masuk

Dalam atribut tersuai ini:

  • MyString: Mewakili rentetan sebenar untuk disiri.
  • MyStringCDATA: Melaksanakan kaedah getter dan setter untuk menukar rentetan kepada CDATA dan sebaliknya.

Penggunaan:

Untuk menggunakan penyelesaian ini hanya:

<code class="language-csharp">MyClass mc = new MyClass();
mc.MyString = "<test>Hello World</test>";
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
StringWriter writer = new StringWriter();
serializer.Serialize(writer, mc);
Console.WriteLine(writer.ToString());</code>
Salin selepas log masuk

Kod ini akan menjana output XML yang dijangkakan, di mana rentetan terkandung dalam 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>
Salin selepas log masuk

(Nota: Contoh XML output mungkin berbeza sedikit daripada yang asal, bergantung pada versi .NET dan tetapan bersiri. Kuncinya ialah atribut MyStringCDATA berjaya merangkum rentetan dalam bahagian CDATA.)

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan