Я пытаюсь создать систему маршрутизации, похожую на Mvc, в которой пользователи создают классы/контроллеры и HTTP-запросы. У меня есть все основы, и это работает по большей части, используя отражение.Решение динамического контроллера IoC ASP.NET 5
Проблема возникает, когда я пытаюсь использовать IoC/Dependency Injection/Service Resolver. Я хочу, чтобы люди могли создавать контроллер, который вводит службы (как и mvc), просто объявляя, что им нужно в конструкторе, и добавляя их в контейнер IoC. Я могу передать/использовать System.IServiceProvider для вызова GetService (Type) для типа контроллера, который мне нужен. Это не работает, хотя я специально не добавляю типы контроллеров в контейнер IoC. Не нужно регистрировать контроллер в Mvc для IoC, поэтому я уверен, что есть обходной путь.
Я попытался использовать отражение, чтобы найти все дочерние классы ControllerBase из запущенной сборки/appdomain и при запуске добавить их в IServiceProvider/IServiceCollection? Но кажется, что переход на ASP.NET 5/Dnx ядро 5, похоже, изменил работу приложений или сборок приложений. Любое руководство о том, как выполнить это автоматически без необходимости регистрации каждого контроллера, было бы замечательным. Также любая информация о том, как mvc делает это, также будет отличной.
Вы спасаете мой день! –