简体   繁体   English

在ASP.NET WebApi中编写CDATA

[英]Writing CDATA in ASP.NET WebApi

Im using the setting: 我正在使用设置:

formatters.XmlFormatter.UseXmlSerializer = true;

The class i try to serailize is quite simple: 我尝试细化的课程非常简单:

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

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

I want this to be serialized into something like: 我希望将其序列化为:

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

But instead get: 但是得到:

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

So how can i prevent this? 那么我该如何预防呢? Or is there a better way using the ASP.NET WebApi? 还是有使用ASP.NET WebApi的更好方法?

Looks like the answer from this question will do it: 看起来这个问题的答案可以做到:

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

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

This works with a regular XmlSerializer object, so I'd guess it works in WebAPI as well. 这可以与常规XmlSerializer对象一起使用,因此我猜它也可以在WebAPI中使用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM