Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mensiri Rentetan sebagai CDATA Menggunakan XmlSerializer 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!