2011-02-10 69 views
1

我的WCF服務的GET請求看起來象下面這樣:如何根據參數更改wcf響應類型?

  1. ../myservice.svc/search?q=keywords & OP = XML
  2. ../myservice.svc/search?q=keywords &運= json

因此根據param op,響應類型應該改變。如何做到這一點?

回答

2

Here您對設置不同格式的響應複雜的文章。如果您使用WCF 4,我一定會考慮在WebHttpBehavior中設置automaticFormatSelectionEnabled="true"。它將根據客戶端的HTTP Accept頭自動選擇響應格式(XML或JSON)。

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

注:以上未測試

+0

我正在使用WebGetAttribute,但是我需要爲相同的邏輯編寫2個方法/包裝嗎?它只是解決方案嗎? – Veeru 2011-02-10 05:22:27