GET上的WCF WebGet字典参数

时间:2012-05-30 20:54:30

标签: c# wcf wcf-rest webget

我想创建一个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;”字符是投掷和危险的论坛请求例外。我不禁想到有一种更简单的方法来实现这一点。

2 个答案:

答案 0 :(得分:1)

你能从HttpContext.Current.Request.QueryString对象中提取这些信息吗?

答案 1 :(得分:1)

您可以通过WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.Query访问请求查询字符串。然后,您可以使用HttpUtility.ParseQueryString将其解析为NameValueCollection,类似于您想要的Dictionary<string, string>