WCF WebGet Словарь Параметр на GET

Я хочу создать метод службы 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 и отправить все в один строковый параметр и разобрать его, но выбрасываются символы "&" и возникает опасное исключение для запроса форума. Я не могу помочь, но думаю, что есть более простой способ достичь этого.

2 ответа

Решение

Вы можете получить доступ к строке запроса запроса через WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.Query, Вы можете использовать HttpUtility.ParseQueryString разобрать это в NameValueCollection, который похож на Dictionary<string, string> что ты хочешь.

Не могли бы вы извлечь эту информацию из объекта HttpContext.Current.Request.QueryString?

Другие вопросы по тегам