2012-10-06 11 views
6

मैं वर्तमान में npject.mvc3 का उपयोग अपने एएसपीनेट वेबपीआई प्रोजेक्ट में कर रहा हूं, और यह ठीक काम करता है। अब मैं फिल्टर गुणों को बांधने की कोशिश कर रहा हूं, लेकिन स्थैतिक वर्ग विधि का उपयोग करते समय BindFilter और BindHttpFilterIKernel इंटरफ़ेस से अनुपलब्ध हैं। अगर मैं Ninject.Web.WebApi पैकेज जोड़ता हूं, तो वहां पर परियोजना नहीं चलती है (समस्या here, समाधान ने कहा कि Ninject.Web.WebApi बहिष्कृत है) इसलिए मैंने इसे वापस हटा दिया।बाइंड वेबएपी फ़िल्टर गुणों के निनजेक्ट का उपयोग

मैंने यह भी github wiki का पालन किया और अभी भी this.BindFilter नहीं मिला था। मेरे पास नवीनतम नुजेट पैकेज हैं; Ninject (3.0.1.10), Ninject.Web.Common (3.0.0.7), Ninject.MVC3 (3.0.0.6)

BindFilter या BindHttpFilter कहां है? क्या कुछ बदल गया? मैं एएसपीनेट वेब एपीआई में फ़िल्टर विशेषताओं को कैसे बांधूं? इतने सारे पुस्तकालय और परियोजनाएं हैं और दस्तावेज़ आपको यह नहीं बताते कि वर्तमान कामकाजी क्या है और क्या बहिष्कृत किया गया है ....

उत्तर

4

आपके द्वारा उपयोग किए जा रहे पैकेज सही हैं, उनमें अभी तक BindHttpFilter शामिल नहीं है। BindHttpFilter एक्सटेंशन विधि https://github.com/remogloor/Ninject.Web.WebApi से है जो वर्तमान में वेबएपी के रिलीज़ संस्करण के लिए काम नहीं कर रही है क्योंकि यह बीटा वेबएपी संस्करण के खिलाफ लिखा गया था। WebApi फ़िल्टर में इंजेक्ट करने के लिए आपको BindHttpFilter की आवश्यकता है, आप BindFilter विधि में WebApi फ़िल्टर को पास नहीं कर सकते हैं।

यह https://github.com/ninject/Ninject.Web.WebApi/pull/1 अद्यतन की स्थिति पर नवीनतम जानकारी प्रतीत होता है।

आप एक और NuGet पैकेज http://nuget.org/packages/Ninject.Web.WebApi-rc भी आजमा सकते हैं लेकिन मुझे इसके साथ कुछ त्रुटियां थीं, अब याद नहीं है कि वास्तव में क्या त्रुटियां हैं। उपर्युक्त पुल अनुरोध पर चर्चा पढ़ने के बाद भी मैंने इस पैकेज पर छोड़ दिया।

मेरे मामले में मैं एक लॉगिंग फ़िल्टर को लागू करने की कोशिश कर रहा हूं, इसलिए मैं सिर्फ एक स्थिर विधि बनाने जा रहा हूं जिसे मैं फ़िल्टर से कॉल कर सकता हूं जब तक इंजेक्शन समर्थन उपलब्ध नहीं होगा।

4

मुझे एक ही समस्या है। 1) मैं प्रधानमंत्री कंसोल से Web.Api के लिए नवीनतम (लेकिन अस्थिर) Ninject आदेश

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

2 का उपयोग कर स्थापित करें) फिर मैं जोड़ने के इस NinjectWebCommon.cs

की धारा
using Ninject.Web.WebApi.FilterBindingSyntax; 

के बाद "का उपयोग करने के लिए" इन चरणों में मेरे IKernel में विधि BindHttpFilter है। और सभी अच्छी तरह से काम करता है

+0

यह मेरे लिए काम करता है, लेकिन मेरा मानना ​​है कि आपका मतलब NinjectWebCommon.cs – friggle

+0

@ निश्चित रूप से हांफ्रेंड करें! –