예제 #1
0
        private object CraeteRequestFromUrl(Type targetType)
        {
            UriTemplateMatch    templateMatch = _webOperationContext.IncomingRequest.UriTemplateMatch;
            NameValueCollection queryParams   = templateMatch.QueryParameters;

            return(UrlSerializer.FromQueryParams(queryParams).GetRequestValue(targetType));
        }
        internal RequestMetadata FromRestMessage(Message message)
        {
            UriTemplateMatch    templateMatch = WebOperationContext.Current.IncomingRequest.UriTemplateMatch;
            NameValueCollection queryParams   = templateMatch.QueryParameters;
            string typeName   = UrlSerializer.FromQueryParams(queryParams).GetTypeValue();
            Type   targetType = GetRequestType(typeName);

            return(RequestMetadata.FromRestMessage(message, targetType));
        }
예제 #3
0
        public void FromQueryParams_QueryParams_Ok()
        {
            const string        TypeValue   = "GetClientRequest";
            string              query       = string.Format("?type={0}&id=4DA2F891-953F-4637-AE83-6791688EAFA2&country=NL", TypeValue);
            NameValueCollection queryParams = HttpUtility.ParseQueryString(query);

            IUrlSerializer urlSerializer = UrlSerializer.FromQueryParams(queryParams);

            string actualType = urlSerializer.GetTypeValue();

            Assert.Equal(TypeValue, actualType);
            Assert.Equal(queryParams.Count, urlSerializer.QueryParams.Count);
        }
예제 #4
0
 public void FromQueryParams_NullQueryParams_ThrowException()
 {
     Assert.Throws(typeof(ArgumentNullException), () => UrlSerializer.FromQueryParams(null));
 }