2014-06-30 2 views
8

Ich baue eine Anwendung mit Ninject (MVC5 + WEBAPI). Und einige Probleme herauszufinden, welche der vielen Antworten die aktuellste Lösung zur Integration von Ninject und WebApi erklären. So habe ich die folgenden Pakete installiert:Was sind all diese Ninject Pakete in nugget für die Integration mit WEB API?

  • Ninject
  • Ninject Integration für WebApi2
  • Ninject.MVC5
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost

Einige Leute meinen, dass mein anfängliches Problem (Ninject löst nicht die Instanziierung der API-Controller) gelöst werden sollte:

  • ein anderes Paket installieren (Ninject.Web.WebApi-RC, Ninject.WebAPI, etc.)
  • meine eigenen Abhängigkeitsauflöser Erstellen
  • Installation Ninject Owin Host
  • Mischen Sie eine der oben genannten und hoffe, es klappt endlich.

So kommt es darauf an, was sind all diese Pakete? Muss ich auch Owin-Hosting verwenden? Ich habe eine 'Ninja Paket.Ninject.Web.WebApi' Nachricht von nuget Konsole gefunden, also nehme ich an, dass diese nicht mehr existiert ?.

Danke.

Antwort

9

Es gibt mehrere Pakete, die Sie benötigen, um Ninject mit Web-API arbeiten 2:

  • Ninject (Basisbibliothek)
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost
  • Ninject.Web.WebApi.WebHost ("Ninject Web-Host für WebAPI 2")
  • Ninject.Web.WebApi ("Ninject Integration für WebAPI 2")

Nachdem Sie alle installiert haben, finden Sie in Ihrem App_Start-Ordner eine vordefinierte NinjectWebCommon-Klasse. Fügen Sie einfach Bindungen zur RegisterServices() -Methode hinzu.

+0

Dank Pharylon, so scheint es, diese Antwort http://stackoverflow.com/a/14018888/641530 ist jetzt veraltet? Wir müssen den benutzerdefinierten Abhängigkeits-Resolver nicht mehr implementieren. Was ist der Unterschied zwischen den beiden Web-Host-Paketen? – Ernesto

+0

Eines ist einfach das Basis-Webhost-Paket und das andere fügt die WebApi 2-Funktionalität hinzu. Aber, ja, dieser Link ist jetzt veraltet. Ich denke, Web Api 2 hat einige Kern-DI-Sachen verändert, also gibt es neue Ninject-Pakete. – Pharylon

+1

Ja, aber ich bin mehr daran interessiert zu wissen, was sie tun, für was zu hosten? Brauche ich den common.webhost, wenn ich den webapi.webhost habe? Was ist, wenn ich einen Webhost verwende? Brauche ich noch die anderen? – Ernesto

Verwandte Themen