Я реализовал собственный маршрут (унаследованный от RouteBase), чтобы динамические маршруты основывались на данных, хранящихся в базе данных.После обработки этот маршрут возвращает RouteData, содержащий 1) объект EF 2) действие 3) контроллер
Все работает, как ожидалось, за исключением того, что я хотел бы, чтобы значением контроллера было либо полное имя типа контроллера(Я разрешаю пользователям выбирать его из панели администратора) или слово «Авто».Если выбрано Авто, я использую структурную карту, чтобы найти контроллер, который реализует универсальный Контроллер .Для этого я возвращаю с данными маршрута MvcRouteHandler с фабрикой пользовательских контроллеров, переданной в его конструктор.
После небольшого копания я понял, что MvcRouteHandler не передает эту фабрику контроллеров MvcHandler, которую он создает, поэтому моя фабрика пользовательских контроллеров никогда не вызывается и маршрут всегда терпит неудачу.Я не уверен, какие альтернативы у меня есть, если таковые имеются.Я думаю, что я, возможно, мог бы установить фабрику контроллеров в целом, но я чувствую, что это было бы неправильно, поскольку только запросы, обработанные моими пользовательскими маршрутами, должны иметь фабрику нестандартных контроллеров.