我想将AttributeRouting与 Orchard CMS 一起使用。为此,我需要IRouteProvider
使用返回 Orchard 列表的方法来实现RouteDescriptor
。
我需要一种获取路线列表的方法,以便可以执行以下操作:
public IEnumerable<RouteDescriptor> GetRoutes()
{
return _routes ?? (_routes = MvcRouting.GetRoutes(GetType().Assembly).Select(route => new RouteDescriptor
{
...
}).ToArray());
}
此方法来自 MvcRouting 但我想使用功能更丰富的AttributeRouting但找不到扫描当前程序集以查找路由属性的方法。需要一种 AttributeRouting 方法来返回我可以投射到 s 列表中RouteDescriptor
但实际上不注册它们的路由列表,将其留给 Orchard。
public class RouteDescriptor {
public string Name { get; set; }
public int Priority { get; set; }
public System.Web.Routing.RouteBase Route { get; set; }
public System.Web.SessionState.SessionStateBehavior SessionState { get; set; }
}
如果我想直接注册路由(在非 Orchard 项目中),我会使用以下 AttributeRouting 扩展方法:
routesCollection.MapAttributeRoutes(config =>
{
config.AddRoutesFromAssembly(Assembly.GetExecutingAssembly());
}
但这不适用于其他 Orchard 模块。所以需要采取上面的方法。
你能想到什么办法吗?