Nejprve nainstalujte framework Ninject pomocí následujícího příkazu Nuget:
Vytvořte rozhraní:
Poté implementujte toto rozhraní:
Vytvořili jsme složku nazvanou Infrastructure v rámci projektu WebUI, přidali jsme tovární třídu nazvanou NinjectControllerFactory, kód byl následující:
ninjectKernel.Get(controllerType) v uvedeném kódu může získat instanci Controlleru. Pokud je ruční instancování třídy Controller velmi složitý proces, nevíme, zda třída Controller má konstruktor s parametry, nebo jaký typ argumentu konstruktor je. Pro použití Ninject stačí použít jednu z výše uvedených metod Get a Ninject automaticky interně zvládne všechny závislosti a inteligentně vytvoří objekty, které potřebujeme.
Jakmile je třída Controller Factory vytvořena, musíme MVC říct, aby použil naši třídu NinjectControllerFactory k vytvoření objektu Controller, k tomu musíme přidat následující kód do Application_Start metody souboru Global.asax:
Vytvoříme novou třídu nazvanou ControllerBase ve složce controller a kód je následující:
Pak upravíme řadič, aby integroval třídu ControllerBase, dobře, hotovo!
|