在ASP.NET的WebAPI写CDATA [英] Writing CDATA in ASP.NET WebApi

查看:172
本文介绍了在ASP.NET的WebAPI写CDATA的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时通讯使用的设置:

formatters.XmlFormatter.UseXmlSerializer = true;

我尝试serailize类是相当简单:

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>

那么,怎样才能我prevent呢?还是有使用ASP.NET的WebAPI更好的办法?

So how can i prevent this? Or is there a better way using the ASP.NET WebApi?

推荐答案

貌似答案从<一个href=\"http://stackoverflow.com/questions/1379888/how-do-you-serialize-a-string-as-cdata-using-xmlserializer\">this问题将做到这一点:

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; }
}

这适用于普通的的XmlSerializer 对象,所以我猜它的WebAPI工作为好。

This works with a regular XmlSerializer object, so I'd guess it works in WebAPI as well.

这篇关于在ASP.NET的WebAPI写CDATA的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆