@0x472DD

Как DI резолвится в .ctor'е контроллера?

Здравствуйте. Подскажите пожалуйста, каким именно образом конкретная реализация интерфейса пробрасывается в контроллер через di?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@lil_Toady
Не очень понятен вопрос.
Если про то как DI понимает какую имплементацию использовать - все просто, вы сами ее и указываете для конкретного интерфейса.
А если вам интересно как DI понимает что передать в конструктор: через рефлексию, в Type есть метод GetConstructors() - получить список ConstructorInfo, описывающих каждый из задекларированных конструкторов. Далее можно получить список параметров (ParameterInfo) через GetParameters() и найти тот, все типы параметров которого известны DI, инстанциировать их и затем уже инстациировать запрошеный класс, как например контроллер, используя, например, Activator.CreateInstance куда передается тип нужного нам класса и список аргументов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы