我创建了一个RESTful WCF Web服务,返回的内容是XML,JSON,纯文本等是否自动包装在根XML元素中:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">.....content.....</string>
这是标准行为吗?还有一个设置,可以关闭它?
答案 0 :(得分:5)
如果你要以XML格式返回一个字符串,你不能简单地“按原样”返回字符串,否则你可能没有有效的XML,所以是的,这是标准行为(默认响应是DataContractSerializer的方式)将序列化结果)。
如果您不想要包装数据,可以通过返回Stream(http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx处的更多详细信息)转移到原始模式。如果您仍想返回CLR类型,但想要控制序列化格式,则可以创建要使用的数据协定,也可以创建使用XML序列化属性修饰的类型(XmlElementAttribute
,{{1} },XmlTextAttribute
等)并使用XmlAttributeAttribute
标记操作(或合同本身)。