如何根据参数更改wcf响应类型?

时间:2011-02-10 03:48:02

标签: c# .net wcf

我的WCF服务获取请求如下所示:

  1. ../ myservice.svc /搜索Q =关键字&安培; OP = XML
  2. ../ myservice.svc /搜索Q =关键字&安培; OP = JSON
  3. 所以基于param op ,响应类型应该更改。如何做到这一点?

2 个答案:

答案 0 :(得分:2)

一种方式是WebGetAttributehttp://msdn.microsoft.com/en-us/library/system.servicemodel.web.webgetattribute.aspx

public class MyService
{
    [OperationContract]
    [WebGet(UriTemplate = "search?q={keyword}&op=xml")]
    string GetXml(string keyword);

    [OperationContract]
    [WebGet(UriTemplate = "search?q={keyword}&op=json")]
    string GetJson(string keyword);
}

注意:以上未经测试

答案 1 :(得分:2)

Here您有关于以不同格式设置响应的复杂文章。如果您使用的是WCF 4,我肯定会考虑在WebHttpBehavior中设置automaticFormatSelectionEnabled="true"。它将根据客户端的HTTP Accept标头自动选择响应格式(XML或JSON)。