Per prima cosa, installa il framework Ninject con il seguente comando Nuget:
Crea un'interfaccia:
Poi implementa questa interfaccia:
Creiamo una cartella chiamata Infrastructure nel progetto WebUI, aggiungiamo una classe di fabbrica chiamata NinjectControllerFactory, il codice è il seguente:
ninjectKernel.Get(controllerType) nel codice sopra può ottenere un'istanza Controller. Se istanziare manualmente la classe Controller è un processo molto complicato, non sappiamo se la classe Controller abbia un costruttore con parametri, o che tipo di argomento sia il costruttore. Per usare Ninject, basta utilizzare uno dei metodi Get sopra indicati, e Ninject gestirà automaticamente tutte le dipendenze internamente e creerà in modo intelligente gli oggetti di cui abbiamo bisogno.
Una volta creata la classe Controller Factory, dobbiamo dire a MVC di usare la nostra classe NinjectControllerFactory per creare l'oggetto Controller; per farlo, dobbiamo aggiungere il seguente codice al metodo Application_Start del file Global.asax:
Creiamo una nuova classe chiamata ControllerBase nella cartella controller, e il codice è il seguente:
Poi, modifichiamo il controller per integrare la classe ControllerBase, ok, fatto!
|