如何在WCF REST服务中使用可选参数?

时间:2011-09-21 10:14:15

标签: c# wcf

我正在寻找的是一种可以将任何内容传递给特定网址的方式,以便我自己解析它。 像这样:

    [OperationContract]
    [WebGet(UriTemplate = "/whatever/blabla/{query}", RequestFormat = WebMessageFormat.Xml)]
    string AddRouteForUser(string query);

之后我可以自己解析查询以获得我需要的值。 可能吗 ? 还有更好的方法吗?

由于

[编辑标题]

2 个答案:

答案 0 :(得分:4)

一种选择是使用查询字符串参数,因为根据定义,它们是一种标记在查询上的可选属性包。这使得路径成为您的休息资源的不可变标识符。

/whatever/blabla?some=data&whichis=optional

虽然没有对数据和其他资源的详细了解,但很难说

编辑:

QueryStrings可以是可选的 请参阅Anand @ https://connect.microsoft.com/VisualStudio/feedback/details/451296/rest-wcf-uritemplate-optional-querystring-parameters

的评论

“您可以通过在WebGet或WebInvoke属性上省略UriTemplate中的查询字符串,并使用WebOperationContext.Current.IncomingRequest.UriTemplateMatch.QueryParameters”来获得所需的效果“

答案 1 :(得分:0)

最后,我将使用OperationContext来获取完整的URL并自己解析它。 我只是在WebGet中加入/ / / {query}所以我知道我想要对待什么。