Как Ninject разрешает контроллеры в MVC? - PullRequest
1 голос
/ 19 октября 2011

Я новичок в MVC. Я следую книге MVC Стива Сандерсона, чтобы создать пример проекта MVC. В проекте ninject использовался для реализации пользовательской ControllerFactory. Я не понимаю той части, что классы Controller могут быть разрешены в ControllerFactory без каких-либо предварительных обязательных утверждений. Как объект ядра получил информацию о контроллерах?

Большое спасибо

Andy

1 Ответ

1 голос
/ 19 октября 2011

Скорее всего, он создает дочерний класс DefaultControllerFactory , который представляет фабрику контроллеров, зарегистрированную по умолчанию.Из MSDN отмечается, что: Этот класс предоставляет удобный базовый класс для разработчиков, которые хотят вносить только незначительные изменения в создание контроллера.Таким образом, можно переопределить метод GetControllerInstance и использовать Ninject для создания контроллера на основе типа контроллера.

Однако текущая фабрика контроллера должна быть зарегистрирована в файле Global.asax.в частности в Application_Start (), используя SetControllerFactory , передавая тип дочернего класса в конструктор типа.Таким образом, это фактически сообщит MVC, что для создания контроллеров следует использовать пользовательский класс контроллеров вместо фабрики контроллеров MVC по умолчанию.

...