我一直在阅读很多关于在WCF方法中检索/返回json对象的帖子。如果我错了,请纠正我:在服务方法允许服务方法返回json对象之前,除了WebInvoke之外,在配置中添加端点和WebHTTp行为。
webinvoke的使用使得该方法非常特定于某种格式(json here)。问题是我已经有了WCF SOAP服务,我想重用服务方法才能返回XML或JSON对象。有没有办法使方法通用,并根据使用的端点或用于访问我的服务方法的平台更改响应格式?
答案 0 :(得分:6)
是的,这是可能的。 JSON和SOAP需要不同的绑定,因此您的服务需要两个端点 - 一个具有webHttpBinding
和webHttp
端点行为,另一个具有basicHttpBinding
或其他面向SOAP的绑定。这些端点必须具有不同的相对地址。
如果要在REST服务中同时支持JSON和XML(POX而不是SOAP)格式,可以在WCF 4中的同一端点上通过在automaticFormatSelectionEnabled="true"
行为中使用webHttp
来定义REST端点。这允许端点返回格式化为JSON或XML的数据。格式的选择基于传入请求的格式,因此JSON中的请求将获得JSON中的响应,而XML中的请求将获得XML响应。