1

設定を使用しています:

formatters.XmlFormatter.UseXmlSerializer = true;

私が直列化しようとするクラスは非常に単純です:

public class MyClass
{
    public MyClass()
    {
        CDATA = "<![CDATA[<link>MyLink</link>]]>"

    [XmlText]
    public string CDATA { get; set; }
}

これを次のようなものにシリアライズしたい:

<MyClass>
     <![CDATA[<link>MyLink</link>]]>
</MyClass>

しかし、代わりに次を取得します。

<MyClass>
     &lt;![CDATA[&lt;!link&gt;MyLink&lt;!/link&gt;]]>
</MyClass>

では、どうすればこれを防ぐことができますか?または、ASP.NET WebApi を使用するより良い方法はありますか?

4

1 に答える 1

2

この質問からの答えのように見えます:

[XmlIgnore] public string Content { get; set; }

[XmlText]
public XmlNode[] CDataContent {
    get {
        return new XmlNode[] {
            new XmlDocument().CreateCDataSection(Content)
        };
    }
    set { Content = value[0].Value; }
}

これは通常のXmlSerializerオブジェクトで動作するので、WebAPI でも動作すると思います。

于 2013-08-05T21:01:23.587 に答える