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()); }
/// <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; }