我有一个WCF服务restul,我想允许用户选择他们想要的请求格式,我有装饰
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=xml")]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=json")]
首先,有没有在运行时指定ResponseFormat并采取格式作为参数传递给方法的方法是什么? 从阅读围绕我不这么认为......好接下来的事情,上面的代码是确定和工作原理,但有一个问题,IM,我希望能够指定一个默认的,所以当没有格式arguement传递然后我就默认值,但我装点像这样
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch})]
[OperationContract]
[WebInvoke(Method = "GET",
ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.Wrapped,
UriTemplate = "getstreamurl?ch={ch}&format=json")]
当XML是默认的,如果我尝试通过浏览器来调用服务方法,它告诉我,:
UriTemplateTable不支持具有等效路径为模板“getstreamurl?CH = {}章”,但有不同的查询字符串,其中查询字符串不能全部通过文字值消歧多个模板。 见UriTemplateTable的文档详细
他们显然可以区分但似乎WCF只阅读了参数,并且那是它...有什么建议?