当前位置:  开发笔记 > Android > 正文

WCF中URITemplate中的可选查询字符串参数?

如何解决《WCF中URITemplate中的可选查询字符串参数?》经验,为你挑选了2个好方法。

我正在WCF 4.0中开发一些RESTful服务.我有一个方法如下:

[OperationContract]
    [WebGet(UriTemplate = "Test?format=XML&records={records}", ResponseFormat=WebMessageFormat.Xml)]
    public string TestXml(string records)
    {
        return "Hello XML";
    }

因此,如果我将浏览器导航到http:// localhost:8000/Service/Test?format = XML&records = 10,那么一切都可以正常运行.

但是,我希望能够导航到http:// localhost:8000/Service/Test?format = XML并且不使用URL的"&records = 10"部分.但是现在,我收到服务错误,因为URI与预期的URI模板不匹配.

那么如何为我的一些查询字符串参数实现默认值呢?我希望将"记录"默认为10,例如,如果该部分不在查询字符串中.



1> luksan..:

注意:此问题已过期,请参阅其他答案.


这似乎不受支持.

但是,Microsoft已经意识到这个问题并且有一个解决方法:

您可以通过从WebGet或WebInvoke属性上的UriTemplate中省略Query字符串,并使用处理程序中的WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters来检查,设置默认值等查询参数,从而获得所需的效果.

https://connect.microsoft.com/VisualStudio/feedback/details/451296/


更新的链接也已死亡.;-)
链接已经死了.

2> Olly..:

根据这个答案,这在.NET 4.0中已得到修复.未能提供查询字符串参数似乎导致其被赋予该类型的默认值.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有