Първо, инсталирайте рамката Ninject със следната команда Nuget:
Създайте интерфейс:
След това реализирайте този интерфейс:
Създаваме папка, наречена Infrastructure, под WebUI проекта, добавяме фабричен клас, наречен NinjectControllerFactory, кодът е следният:
ninjectKernel.Get(controllerType) в горния код може да получи инстанция на Controller. Ако ръчното инстанциране на класа Controller е много сложен процес, не знаем дали класът Controller има конструктор с параметри или какъв тип аргумент е конструкторът. За да използвате Ninject, трябва да използвате само един от горните Get методи и Ninject автоматично ще обработва всички зависимости вътрешно и интелигентно ще създаде нужните ни обекти.
След като класът Controller Factory е създаден, трябва да кажем на MVC да използва нашия клас NinjectControllerFactory за създаване на обекта Controller, за да го направим, трябва да добавим следния код към метода Application_Start на файла Global.asax:
Създаваме нов клас, наречен ControllerBase, в папката controller, и кодът е следният:
След това модифицираме контролера, за да интегрира класа ControllerBase, добре, готово!
|