2014-06-30 33 views
8

Ninject (MVC5 + WEBAPI) kullanarak bir uygulama yapıyorum. Ve birçok cevapların hangisinin Ninject ve WebApi'yi entegre etmek için en güncel çözümü açıkladığını anlatan bazı sorunlar. Bu yüzden aşağıdaki paketler yüklediniz:WEB API'sı ile entegrasyon için nuget'teki tüm bu Ninject paketleri nelerdir?

  • Ninject
  • Ninject Entegrasyon WebApi2
  • Ninject.MVC5
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost
için

Bazı kişiler, ilk sorunumun (Ninject, API denetleyicilerinin başlatılmasının çözülmediğini), şunlardan birinin çözülmesini önermektedir:

  • Ninject Owin ev sahibi takma kendi bağımlılık çözücü
  • oluşturma başka bir paket (Ninject.Web.WebApi-RC, vb Ninject.WebAPI, )
  • takma
  • karıştırın yukarıdakilerin herhangi ve Umarım sonunda çalışır.

Yani, bu paketlerin hepsi nedir? Ayrıca, Owin'i barındırma ihtiyacım var mı? Nuget konsolundan 'Ninject.Web.WebApi' paketi bulunamadı 'iletisi var, bu yüzden artık mevcut değil mi?

Teşekkürler.

cevap

9

Eğer Ninject Web API 2 ile çalışan almak için gereken birkaç paketleri vardır:

  • Ninject (baz kütüphanesi)
  • Ninject.Web.Common
  • Ninject.Web.Common.WebHost
  • Ninject.Web.WebApi.WebHost ("Ninject Web Host WebAPI 2 için")
  • Ninject.Web.WebApi
("Ninject Entegrasyon WebAPI 2 için")

Tüm bunları yükledikten sonra, App_Start klasörünüzde önceden oluşturulmuş bir NinjectWebCommon sınıfı bulacaksınız. Sadece size RegisterServices() yöntemine bağlamalar ekleyin.

+0

Teşekkürler Pharylon, bu yüzden bu cevap http://stackoverflow.com/a/14018888/641530 şimdi modası geçmiş gibi görünüyor? Artık özel bağımlılık çözümleyicisini uygulamaya gerek yok. İki web sunucusu paketi arasındaki fark nedir? – Ernesto

+0

One, basit bir şekilde Webhost paketi ve diğeri de WebApi 2 işlevselliğini ekler. Ancak, evet, bu bağlantı şu anda modası geçmiş. Web Api 2'nin bazı temel DI'leri değiştirdiğini düşünüyorum, bu yüzden yeni Ninject paketleri var. – Pharylon

+1

Evet, ama ne yaptıklarını bilmek, neye ev sahipliği yapmakla ilgileniyorum? Webapi.webhost'una sahip olduğumda common.webhost'a ihtiyacım var mı? Ya o web webhostunu kullanırsam? Hala diğerlerine ihtiyacım var mı? – Ernesto