在ASP.NET WebApi中编写CDATA

时间:2013-08-05 20:35:57

标签: asp.net asp.net-web-api xml-serialization xmlserializer

我正在使用设置:

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吗?

1 个答案:

答案 0 :(得分:1)

看起来this question的回答会这样做:

[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。