2012-05-30 4 views
0

쿼리 문자열에 임의의 수의 매개 변수를 받아서 메서드의 특정 유형의 키 값 컬렉션 매개 변수로 보낼 수있는 WCF RESTful 서비스 메서드를 만들고 싶습니다. 내가WCF WebGet Dictionary 매개 변수 (GET)

호출하는 경우

: 예를 들어? "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을 정의하고 모든 문자열을 하나의 문자열 매개 변수로 보내고 구문 분석하는 것이었지만 "&"문자가 던져지고 위험한 포럼 요청 예외가 발생했습니다. 나는 이것을 달성 할 수있는 더 쉬운 방법이 있다고 생각하지만 도와 줄 수는 없다.

답변

1

WebOperationContext.Current.IncomingRequest.UriTemplateMatch.RequestUri.Query을 통해 요청 쿼리 문자열에 액세스 할 수 있습니다. 그런 다음 HttpUtility.ParseQueryString을 사용하여이를 NameValueCollection으로 구문 분석 할 수 있습니다. 이는 Dictionary<string, string>과 유사합니다.

1

이 정보를 HttpContext.Current.Request.QueryString 개체 밖으로 가져올 수 있습니까?