有沒有一種方法可以動態更改給定客戶端傳遞的參數的方法上的WebResponseFormat?我默認我的WebResponseFormat爲XML,但我想給客戶機會指定格式爲JSON或XML,如果沒有指定,則默認爲XML。WCF - 動態更改WebResponseFormat
目前我做了以下內容:
[WebGet(UriTemplate = "objects", BodyStyle = WebMessageBodyStyle.Bare)]
[OperationContract]
List<SampleObject> GetObjects();
用戶可以通過調用它:
http://localhost/rest/myservice/objects
然後,他們可以指定格式做:
http://localhost/rest/myservice/objects?format=json
問題是當我嘗試通過設置響應內容類型時:
WebOperationContext.Current.OutgoingResponse.ContentType = "application/json";
這只是返回XML,但瀏覽器嘗試像JSON對象一樣處理它,而不是將響應序列化爲JSON。
在使用Stream作爲返回值並自己序列化響應之外,.NET 3.5還有可能嗎?如果沒有,是否有更好的解決方案?
感謝您的建議。 .NET 4.0有很多強大的功能,但我不認爲我工作的公司會很快將我們升級到VS2k10和.NET 4.0。 查看我的答案,我是如何解決這個問題的。 – Brandon 2010-04-01 14:38:31