public static Route[] BuildDirectRouteStubsFrom <T>(Expression <Action <T> > methodCall)
        {
            var method     = ((MethodCallExpression)methodCall.Body).Method;
            var attributes = method.GetCustomAttributes(false).OfType <IRouteInfoProvider>();

            return(attributes.Select(attr =>
            {
                var route = new Route(attr.Template, routeHandler: null);
                route.SetTargetActionMethod(method);
                return route;
            }).ToArray());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Builds an <see cref="Route"/>.
        /// </summary>
        /// <param name="defaults">The route defaults.</param>
        /// <param name="constraints">The route constraints.</param>
        /// <param name="dataTokens"></param>
        /// <param name="routeTemplate">The detokenized route template.</param>
        /// <param name="targetMethod">The method that the route attribute has been applied on.</param>
        /// <returns>The generated <see cref="Route"/>.</returns>
        public virtual Route BuildDirectRoute(RouteValueDictionary defaults, RouteValueDictionary constraints, RouteValueDictionary dataTokens, string routeTemplate, MethodInfo targetMethod)
        {
            Route route = new Route(routeTemplate, new MvcRouteHandler())
            {
                Defaults = defaults,
                Constraints = constraints,
                DataTokens = dataTokens
            };

            route.SetTargetActionMethod(targetMethod);
            return route;
        }