Installieren Sie zunächst das Ninject-Framework mit folgendem Nuget-Befehl:
Erstellen Sie eine Schnittstelle:
Dann implementiere diese Schnittstelle:
Wir erstellen einen Ordner namens Infrastructure unter dem WebUI-Projekt, fügen eine Factory-Klasse namens NinjectControllerFactory hinzu, der Code ist wie folgt:
ninjectKernel.Get(controllerType) im obigen Code kann eine Controller-Instanz erhalten. Wenn das manuelle Instansieren der Controller-Klasse ein sehr komplizierter Prozess ist, wissen wir nicht, ob die Controller-Klasse einen Konstruktor mit Parametern hat oder um welche Art von Argument der Konstruktor handelt. Um Ninject zu verwenden, benötigt man nur eine der oben genannten Get-Methoden, und Ninject verwaltet automatisch alle internen Abhängigkeiten und erstellt intelligent die benötigten Objekte.
Sobald die Controller Factory-Klasse erstellt ist, müssen wir MVC sagen, dass sie unsere NinjectControllerFactory-Klasse verwenden soll, um das Controller-Objekt zu erstellen; dazu müssen wir folgenden Code zur Application_Start-Methode der Global.asax-Datei hinzufügen:
Wir erstellen eine neue Klasse namens ControllerBase im Controller-Ordner, und der Code ist wie folgt:
Dann modifizieren wir den Controller, um die ControllerBase-Klasse zu integrieren, okay, fertig!
|