我想创建一个WCF RESTful服务方法,它可以在查询字符串中接收任意数量的参数,并将它们发送到方法上的某种类型的键值集合参数。例如:
如果我打电话
“HTTP://localhost/Service.svc/DoWork P1 =试验&安培; P2 = testAgain”
我希望方法实现看起来像:
[WebGet]
public void DoWork(Dictionary<string,string> values)
{
// Add your operation implementation here
return;
}
并且values
参数将包含具有相应值的p1,p2键。
我该怎么做?我有一种方法是定义一个自定义的UriTemplate并将所有内容发送到一个字符串参数并解析出来但是“&amp;”字符是投掷和危险的论坛请求例外。我不禁想到有一种更简单的方法来实现这一点。
答案 0 :(得分:1)
你能从HttpContext.Current.Request.QueryString对象中提取这些信息吗?
答案 1 :(得分:1)
您可以通过WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.Query
访问请求查询字符串。然后,您可以使用HttpUtility.ParseQueryString
将其解析为NameValueCollection
,类似于您想要的Dictionary<string, string>
。