我创建了一个 RESTful WCF 网络服务,返回的内容(无论是 XML、JSON、纯文本等)都自动包装在根 XML 元素中:
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">.....content.....</string>
这是标准行为吗?还有可以关闭它的设置吗?
最佳答案
如果您要返回 XML 格式的字符串,则不能简单地“按原样”返回字符串,否则您可能没有有效的 XML,所以是的,这是标准行为(默认响应是 DataContractSerializer将序列化结果)。
如果您不想要包装的数据,您可以通过返回 Stream 进入原始模式(更多详细信息,请参见 http://blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx)。如果你仍然想返回一个 CLR 类型,但你想控制序列化格式,你可以创建一个数据协定来使用,或者创建一个用 XML 序列化属性修饰的类型(XmlElementAttribute
,XmlTextAttribute
、XmlAttributeAttribute
等)并使用 XmlSerializerFormatAttribute
标记操作(或协定本身)。
关于.net - RESTful WCF Web 服务 XML 返回标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7085678/