2012-10-06 15 views
6

Şu anda asp.net webapi projemde ninject.mvc3 kullanıyorum ve gayet iyi çalışıyor. Şimdi filtre özelliklerini bağlamaya çalışıyorum, ancak NinjectWebCommon statik sınıf yöntemi kullanılırken BindFilter ve BindHttpFilterIKernel arabiriminden eksik. Ninject.Web.WebApi paketini eklerseniz, onunla birlikte proje çalışmaz (sorun here, çözüm Ninject.Web.WebApi kullanımdan kaldırılmıştır), ben de onu kaldırdım.WebApi Filtresi Nitelikleri Bağlamak için Ninject Kullanma

Ben de tam olarak bu github wiki izledi ve hala this.BindFilter bulunmadı. Son nuget paketlerim var; Ninject (3.0.1.10), Ninject.Web.Common (3.0.0.7), Ninject.MVC3 (3.0.0.6)

BindFilter veya BindHttpFilter nerede? Bir şey değişti mi? Asp.net web api'de filtre niteliklerini nasıl bağlarım? Pek çok kütüphane ve proje var ve dokümanlar size şu an ne işe yarayan ne olduğunu ve kullanımdan vazgeçtiğini söylemiyor ....

cevap

4

Kullandığınız paketler, BindHttpFilter'ı henüz içermediklerinden doğrudur. BindHttpFilter uzantı yöntemi, WebApi'nin beta WebApi sürümüne karşı yazıldığı sırada şu anda yayınlanmayan sürümü için çalışan https://github.com/remogloor/Ninject.Web.WebApi'dan kaynaklanmaktadır. Bir WebApi filtresine enjekte etmek için BindHttpFilter'a ihtiyacınız var, bir WebApi filtresini BindFilter yöntemine geçiremezsiniz.

Bu https://github.com/ninject/Ninject.Web.WebApi/pull/1 Ben bir güncelleme durumunu bulabildiğim en son bilgileri gibi görünüyor olduğunu.

anda ne kadar hataları hatırlamıyorum, Ayrıca, başka Nuget paket http://nuget.org/packages/Ninject.Web.WebApi-rc deneyebilirsiniz ama onunla bazı hatalar vardı. Yine de yukarıda belirtilen çekme talebiyle ilgili tartışmayı okuduktan sonra bu paketten vazgeçtim.

Benim durumumda, bir günlüğe kaydetme filtresini uygulamaya çalışıyorum, bu yüzden, enjeksiyon desteğini alana kadar filtreden arayabileceğim statik bir yöntem oluşturacağım.

4

Aynı sorun var. 1) Sonra ben bu

using Ninject.Web.WebApi.FilterBindingSyntax; 

sonra NinjectWebCommon.cs

bölümüne "kullanma" ekleyin) PM konsolundan Web.Api için Ninject) son (ama kararsız komutunu

PM> Install-Package Ninject.Web.WebApi -Pre 

2 kullanarak yüklemek Bu adımlar IKernel'im BindHttpFilter yöntemine sahiptir. Ve her şey iyi çalışıyor

+0

Bu benim için çalıştı, ama tabiki NinjectWebCommon.cs – friggle

+0

@ friggle evet demek inanıyorum! –