Pirmiausia įdiekite "Ninject" sistemą naudodami šią komandą "Nuget":
Sukurkite sąsają:
Tada įgyvendinkite šią sąsają:
Mes sukuriame aplanką pavadinimu "Infrastructure" pagal "WebUI" projektą, pridedame prie jo gamyklinę klasę, vadinamą "NinjectControllerFactory", kodas yra toks:
ninjectKernel.Get(controllerType) aukščiau pateiktame kode gali gauti valdiklio egzempliorių. Jei rankiniu būdu sukurti valdiklio klasę yra labai sudėtingas procesas, mes nežinome, ar valdiklio klasė turi konstruktorių su parametrais, ar kokio tipo argumentas yra konstruktorius. Norėdami naudoti "Ninject", jums tereikia naudoti vieną iš aukščiau pateiktų "Get" metodų, o "Ninject" automatiškai tvarkys visas priklausomybes viduje ir protingai sukurs mums reikalingus objektus.
Sukūrę valdiklio gamyklos klasę, turime nurodyti MVC naudoti mūsų NinjectControllerFactory klasę, kad sukurtų valdiklio objektą, norėdami tai padaryti, turime pridėti šį kodą prie Application_Start failo Global.asax metodo:
Valdiklio aplanke sukuriame naują klasę, pavadintą "ControllerBase", o kodas yra toks:
Tada modifikuojame valdiklį, kad integruotume "ControllerBase" klasę, gerai, padaryta!
|