1

我使用设置:

formatters.XmlFormatter.UseXmlSerializer = true;

我尝试 serailize 的课程非常简单:

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 回答