使用 .NET XmlSerializer 將字串輸出為 CDATA
.NET XmlSerializer
不直接支援使用屬性將字串序列化為 CDATA。 但是,使用 getter 和 setter 的自訂解決方案可以實現此目的。
這是示範此技術的課程:
<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>
序列化範例:
<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>
預期輸出:
輸出將顯示包含在 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>
此方法使用 XmlSerializer
有效地將字串序列化為 CDATA,避免了缺乏直接屬性支援的問題。
以上是如何使用 .NET XmlSerializer 將字串序列化為 CDATA?的詳細內容。更多資訊請關注PHP中文網其他相關文章!