Я хочу использовать AttributeRouting с Orchard CMS. Для этого мне нужно реализовать IRouteProvider
с помощью метода, который возвращает список Orchard RouteDescriptor
s.AttributeRouting - метод получения маршрутов в сборке
Мне нужен способ, чтобы получить список маршрутов, так что я могу сделать что-то вроде этого:
public IEnumerable<RouteDescriptor> GetRoutes()
{
return _routes ?? (_routes = MvcRouting.GetRoutes(GetType().Assembly).Select(route => new RouteDescriptor
{
...
}).ToArray());
}
Этот метод является от MvcRouting, но я хочу, чтобы использовать больше функции богатых AttributeRouting, но не может найти способ сканирования текущая сборка для атрибутов маршрутизации. Нужен способ для атрибутаRouting, чтобы вернуть список маршрутов, которые я могу проецировать, в список 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; }
}
Если бы я хотел, чтобы зарегистрировать маршруты непосредственно (в не-Орчард проекта) Я хотел бы использовать следующие AttributeRouting методы расширения:
routesCollection.MapAttributeRoutes(config =>
{
config.AddRoutesFromAssembly(Assembly.GetExecutingAssembly());
}
Но это не место хорошо с другими модулями Orchard , Поэтому нужно принять подход выше.
Как вы можете думать?
Почему вы хотите это сделать? Маршруты - это общие ресурсы, а модули должны хорошо сочетаться друг с другом. Вам необходимо использовать API-интерфейсы маршрутизации, которые предоставляет Orchard. –
Я смутно помню, как перенос некоторых проектов в сад и возникли проблемы, поскольку, если вы используете маршруты Multi-Tenancy, не может быть имен. Как сказал Бертран, просто используйте Orchards routing – Hazza
@BertrandLeRoy Ну, есть этот проект, который я получил от https://github.com/benjaminkeeping/Orchard.Routing Я не понимаю, почему я не могу определить свои маршруты, используя атрибуты и по-прежнему хорошо играть с другими модулями. Не так, как будто я хочу зарегистрировать их самостоятельно, я просто хочу получить список атрибутов маршрута, которые украсят мои контроллеры в этом конкретном модуле и передают его в Orchard, чтобы фактически зарегистрировать их. Почему бы это не сделать по дизайну? – parliament