首頁 > 後端開發 > C++ > 如何在 C# 中使用 XmlSerializer 將字串序列化為 CDATA?

如何在 C# 中使用 XmlSerializer 將字串序列化為 CDATA?

Barbara Streisand
發布: 2025-01-13 06:59:42
原創
205 人瀏覽過

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

在 C# 中自訂 CDATA 字串的 XML 序列化

標準 .NET XmlSerializer 不直接將字串序列化為 XML 中的 CDATA 部分。 但是,可以實施自訂解決方案來實現此目的。 這涉及創建一個具有公共字串屬性和相應的 XmlCDataSection 屬性的類,該屬性用於序列化。

為了實現此目的,我們建立一個用 XmlIgnore 標記的屬性來保存字串值,並建立另一個用 XmlElement 裝飾的屬性,傳回 XmlCDataSectionXmlElement 屬性指定 XML 元素名稱,XmlIgnore 屬性防止字串屬性的直接序列化。

範例實作:

<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>
登入後複製

序列化範例:

<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>
登入後複製

此程式碼片段示範如何使用自訂類別將字串序列化為 CDATA 部分。 請注意,輸出將根據 MyStringProperty 的內容而變化。 XmlCDataSection 屬性處理序列化期間到適當 CDATA 格式的轉換。

以上是如何在 C# 中使用 XmlSerializer 將字串序列化為 CDATA?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板