2014-06-30 5 views
8

Sto costruendo un'applicazione utilizzando Ninject (MVC5 + WEBAPI). E avendo alcuni problemi a capire quali delle molte risposte spiegano la soluzione più aggiornata per integrare Ninject e WebApi. Così ho i seguenti pacchetti installati:Cosa sono tutti questi pacchetti Ninject in nuget per l'integrazione con WEB API?

  • Ninject
  • Ninject integrazione per WebApi2
  • Ninject.MVC5
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost

Alcune persone suggeriscono che il mio problema iniziale (Ninject non risolve l'istanza dei controller API) dovrebbe essere risolto da:

  • Installazione di un altro pacchetto (Ninject.Web.WebApi-RC, Ninject.WebAPI, ecc)
  • creare la mia dipendenza risolutore
  • Installazione ospite Ninject Owin
  • mescolare tutto quanto sopra e spero che alla fine funzioni.

Quindi si tratta di, quali sono tutti questi pacchetti? Inoltre, devo usare Owin hosting? Ho ricevuto un messaggio "Impossibile trovare il pacchetto Ninject.Web.WebApi" dalla console di nuget, quindi presumo che questo non esista più.

Grazie.

risposta

9

Ci sono diversi pacchetti che è necessario ottenere Ninject lavorare con Web API 2:

  • Ninject (biblioteca di base)
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost
  • Ninject.Web.WebApi.WebHost ("Web Host Ninject per WebAPI 2")
  • Ninject.Web.WebApi ("Ninject integrazione per WebAPI 2")

Dopo aver installato tutti questi, troverai una classe NinjectWebCommon preinstallata nella tua cartella App_Start. Basta aggiungere i collegamenti al metodo RegisterServices().

+0

Grazie Pharylon, quindi, sembra che questa risposta http://stackoverflow.com/a/14018888/641530 non sia aggiornata? Non è più necessario implementare il resolver di dipendenze personalizzato. Qual è la differenza tra i due pacchetti host web? – Ernesto

+0

Uno è semplicemente il pacchetto base Webhost e l'altro aggiunge la funzionalità WebApi 2. Ma, sì, quel collegamento è ormai superato. Penso che Web Api 2 abbia cambiato alcune cose di base di DI, quindi ci sono nuovi pacchetti di Ninject. – Pharylon

+1

Sì, ma sono più interessato a sapere cosa fanno, hosting per cosa? Ho bisogno del common.webhost se ho il webapi.webhost? Cosa succede se uso owin webhost? Ho ancora bisogno degli altri? – Ernesto