Как ninject делает инъекцию зависимостей в Asp.net MVC - PullRequest
1 голос
/ 27 апреля 2011

я изучаю по книге Pro asp.net mvc2 по адресу apress, в книге автор использует нинъект для внедрения зависимостей. Он наследует фабрику управления по умолчанию:

открытый класс NinjectControllerFactory: DefaultControllerFactory

и затем переопределяет: GetControllerInstance

У меня есть 2 вопроса.

  1. как DefaultControllerFactory знает, какой контроллер загрузить? я предполагаю, что он использует таблицу маршрутов, а затем загружает ее с отражением. я прав ?

  2. и как незнакомец знает, как это сделать, единственная строка, которую я написал:

    частное ядро ​​IKernel = новый StandardKernel (); return (IController) kernel.Get (controllerType);

Нинъект не может знать о моей таблице маршрутов и о том, какой контроль он должен загрузить. так откуда он знает?

пс. я использую обычный ninject, а не какую-то конкретную версию, созданную для MVC (которую я считаю, что они также есть на их сайте)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2011

NinjectControllerFactory.GetControllerInstance вызывается MVC. Это означает, что именно MVC оценивает, какой тип контроллера требуется для обработки запроса, и получает его из таблицы маршрутизации.

Если вы хотите использовать это, я рекомендую использовать https://github.com/ninject/ninject.web.mvc. Это сэкономит ваше время и работу, так как поддерживается вместе с Ninject. В противном случае вам придется самостоятельно обновляться до новых версий Ninject.

0 голосов
/ 27 апреля 2011
...