के साथ निनजेक्ट का उपयोग करना मैं अटक गया हूं। मैं wcf web api p6 Ninject working with WCF Web API Preview 5 के लिए यहां उल्लिखित विधि का उपयोग कर रहा था, हालांकि बीटा में एमवीसी कार्यान्वयन के साथ चीजें काफी अलग हैं। यहां एक अच्छा आलेख है http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver जो आपके स्वयं के कस्टम निर्भरता रिज़ॉल्यूवर के निर्माण के बारे में बात करता है, हालांकि मैं अपने एमवीसी व्यू कंट्रोलर के लिए उपयोग कर रहा हूं उसी कार्यान्वयन का उपयोग करना चाहता हूं ... उदा। Ninject। मैंने लेख में आईओसी यूनिटी उदाहरण के आधार पर कुछ चीजों की भी कोशिश की है, लेकिन अभी तक कुछ भी नहीं निकला है। सही दिशा में मुझे इंगित करने में कोई भी मदद की सराहना की जाएगी। मैं अपने आप पर खुदाई रखने जा रहा हूं। अग्रिम में धन्यवाद!एएसपी.नेट वेब एपीआई बीटा एपीकंट्रोलर
यहां मैं कहां हूं। मैं कोड को बूटस्ट्रैप करने के लिए वेब एक्टिवेटर का उपयोग कर रहा था, लेकिन बाद में मैंने इसे समीकरण से एक और चीज़ लेने के लिए एप्लिकेशन_स्टार्ट() पर छोड़ दिया है।
protected void Application_Start()
{
var kernel = new StandardKernel(new MyNinjectModule());
GlobalConfiguration.Configuration.ServiceResolver.SetResolver(new NinjectDependencyResolver(kernel));
}
और निम्न त्रुटि मिल रही है:
प्रकार Ninject.Web.Mvc.NinjectDependencyResolver Microsoft.Practices.ServiceLocation.IServiceLocator लागू करने के लिए प्रकट नहीं होता।
पैरामीटर नाम: commonServiceLocator
मिले समाधान
शायद नहीं है/एक और अधिक सुरुचिपूर्ण तरीका होगा, लेकिन यह अब मेरे लिए काम कर रहा है। मैं यहां भी अपना कस्टम संदेश हैंडलर भी जोड़ रहा हूं।
[assembly: WebActivator.PreApplicationStartMethod(typeof(MyApp.AppStart.ApiBootstrapper), "Start")]
namespace MyApp.AppStart
{
public class ApiBootstrapper
{
public static void Start()
{
var kernel = new StandardKernel(new MyNinjectModule());
var resolver = new NinjectDependencyResolver(kernel);
GlobalConfiguration.Configuration.ServiceResolver.SetResolver(resolver.GetService, resolver.GetServices);
GlobalConfiguration.Configuration.MessageHandlers.Add(new ApiAuthHandler());
}
}
}
यह एक काफी अच्छा समाधान है: http://haacked.com/archive/2012/03/11/itrsquos- थोड़ी-चीजें-एएसपी-नेट-एमवीसी-4.aspx –
यदि आप दोनों प्रकार के नियंत्रकों के लिए समान बाइंडिंग का उपयोग करना चाहते हैं तो नीचे @ रेमो ग्लोर का पैकेज भी देखें। आप इसे गीथब पर पा सकते हैं और इसे न्यूजेट से इंस्टॉल कर सकते हैं। –