ASP.NET MVC Урок 1-F / ASP.NET MVC Урок 2
.pdf`
«
SULYDWH VWDWLF YRLG 5HJLVWHU6HUYLFHV,.HUQHO NHUQHO
^
NHUQHO %LQG ,:HDSRQ! 7R %D]XND!
`
В контроллере используем атрибут >,QMHFW@:
SXEOLF FODVV +RPH&RQWUROOHU &RQWUROOHU
^
>,QMHFW@
SXEOLF,:HDSRQ ZHDSRQ ^JHW VHW`
SXEOLF $FWLRQ5HVXOW,QGH[
^
UHWXUQ9LHZ ZHDSRQ
`
`
Изменяем View:
#PRGHO /HVVRQ3URMHFW 0RGHOV ,:HDSRQ
#^
9LHZ%DJ 7LWOH /HVVRQ3URMHFW
/D\RXW a 9LHZV 6KDUHG B/D\RXW FVKWPO
`
K!/HVVRQ3URMHFWK!
S! #0RGHO .LOOS!
На выходе получаем:
Ninject использует WebActivator:
регистрирует свои модули OnePerRequestHttpModule и NinjectHttpModule
создает StandartKernel
инициализирует наши сервисы.
DependencyResolver
В asp.net mvc3 появился класс DependencyResolver. Этот класс обеспечивает получение экземпляра сервиса. Наши зарегистрированные сервисы (и даже используемый DIконтейнер) мы также можем получить посредством этого класса.
SXEOLF FODVV +RPH&RQWUROOHU &RQWUROOHU
^
SULYDWH,:HDSRQ ZHDSRQ ^JHW VHW`
SXEOLF +RPH&RQWUROOHU
^
ZHDSRQ 'HSHQGHQF\5HVROYHU &XUUHQW *HW6HUYLFH ,:HDSRQ!
`
SXEOLF $FWLRQ5HVXOW,QGH[
^
UHWXUQ9LHZ ZHDSRQ
`
`
Итог
Использование DIконтейнеров в современных приложениях необходимо, чтобы избавиться от сильной связности кода, и для легкого доступа из любой его части к сервисам. Также, это необходимо для написания Unitтестов.
Все исходники находятся по адресу https://bitbucket.org/chernikov/lessons