2014-06-30 12 views
8

Buduję aplikację za pomocą programu Ninject (MVC5 + WEBAPI). I mając pewne problemy, zastanawiając się, które z wielu odpowiedzi wyjaśniają najbardziej aktualne rozwiązanie do integracji programów Ninject i WebApi. Więc mam zainstalowane następujące pakiety:Co to za pakiety Ninject w nuget do integracji z WEB API?

  • Ninject
  • Ninject Integracja dla WebApi2
  • Ninject.MVC5
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost

Niektórzy sugerują, że mój początkowy problem (Ninject nie rozwiązuje wystąpienia kontrolerów API) powinien zostać rozwiązany przez:

  • Instalacja inny pakiet (Ninject.Web.WebApi-RC, Ninject.WebAPI, itp)
  • Tworzenie własną zależność resolverowi
  • Instalowanie hosta Ninject Owin
  • Mix którekolwiek z powyżej mam nadzieję, że w końcu zadziała.

Sprowadza się to do tego, jakie są wszystkie te pakiety? Czy muszę też korzystać z hostingu Owin? Dostałem komunikat "Nie można znaleźć pakietu Ninject.Web.WebApi" z konsoli nuget, więc zakładam, że ten już nie istnieje ?.

Dzięki.

Odpowiedz

9

Istnieje kilka pakietów trzeba dostać Ninject pracy z Web API 2:

  • Ninject (biblioteka baza)
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost
  • Ninject.Web.WebApi.WebHost ("Ninject Web Host dla WebAPI 2")
  • Ninject.Web.WebApi ("Ninject Integracji dla WebAPI 2")

Po zainstalowaniu wszystkich tych elementów znajdziesz wbudowaną klasę NinjectWebCommon w folderze App_Start. Wystarczy dodać wiązania do metody RegisterServices().

+0

Dzięki Pharylon, wydaje się, że ta odpowiedź http://stackoverflow.com/a/14018888/641530 jest już nieaktualna? Nie musimy już implementować niestandardowego narzędzia do rozwiązywania zależności. Jaka jest różnica między dwoma pakietami hostingowymi? – Ernesto

+0

Jedna jest po prostu podstawowym pakietem Webhost, a druga dodaje funkcjonalność WebApi 2. Ale tak, ten link jest już nieaktualny. Wydaje mi się, że Web Api 2 zmienił niektóre podstawowe pliki DI, więc pojawiły się nowe pakiety Ninject. – Pharylon

+1

Tak, ale jestem bardziej zainteresowany wiedząc, co robią, hosting dla czego? Czy potrzebuję pliku common.webhost, jeśli mam serwer webapi.webhost? Co się stanie, jeśli użyję serwera webin? Czy nadal potrzebuję innych? – Ernesto

Powiązane problemy