コード例 #1
0
        public IHttpVirtualPathData GetVirtualPath(HttpRequestMessage request, IDictionary <string, object> values)
        {
            if (request == null)
            {
                throw Error.ArgumentNull("request");
            }

            HttpContextBase httpContextBase;

            if (request.Properties.TryGetValue(HttpControllerHandler.HttpContextBaseKey, out httpContextBase))
            {
                HostedHttpRouteData routeData = request.GetRouteData() as HostedHttpRouteData;
                if (routeData != null)
                {
                    RequestContext  requestContext  = new RequestContext(httpContextBase, routeData.OriginalRouteData);
                    VirtualPathData virtualPathData = OriginalRoute.GetVirtualPath(requestContext, new RouteValueDictionary(values));
                    if (virtualPathData != null)
                    {
                        return(new HostedHttpVirtualPathData(virtualPathData, routeData.Route));
                    }
                }
            }

            return(null);
        }
コード例 #2
0
        public static RouteData ToRouteData(this IHttpRouteData httpRouteData)
        {
            if (httpRouteData == null)
            {
                throw Error.ArgumentNull("httpRouteData");
            }

            HostedHttpRouteData hostedHttpRouteData = httpRouteData as HostedHttpRouteData;

            if (hostedHttpRouteData != null)
            {
                return(hostedHttpRouteData.OriginalRouteData);
            }

            Route route = httpRouteData.Route.ToRoute();

            return(new RouteData(route, HttpControllerRouteHandler.Instance));
        }
コード例 #3
0
        public static RouteData ToRouteData(this IHttpRouteData httpRouteData)
        {
            if (httpRouteData == null)
            {
                throw Error.ArgumentNull("httpRouteData");
            }

            HostedHttpRouteData hostedHttpRouteData = httpRouteData as HostedHttpRouteData;

            if (hostedHttpRouteData != null)
            {
                return(hostedHttpRouteData.OriginalRouteData);
            }

            Route     route  = httpRouteData.Route.ToRoute();
            RouteData result = new RouteData(route, HttpControllerRouteHandler.Instance);

            foreach (KeyValuePair <string, object> pair in httpRouteData.Values)
            {
                result.Values.Add(pair.Key, pair.Value);
            }
            return(result);
        }