का उपयोग कर रहा है मेरी Global.aspx में निम्न कोडबेस नियंत्रक में संपत्ति इंजेक्शन Ninject 2
protected override void OnApplicationStarted()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
RegisterAllControllersIn(Assembly.GetExecutingAssembly());
}
protected override IKernel CreateKernel()
{
return new StandardKernel(new ServiceModule());
}
मैं भी निम्नलिखित Ninject मॉड्यूल है:
internal class ServiceModule : NinjectModule
{
public override void Load()
{
Bind<IProductService>().To<ProductService>().InRequestScope();
}
}
मैं भी एक आधार नियंत्रक है:
public class BaseController : Controller
{
[Inject]
public IProductService ProductService
{
get;
set;
}
}
यह कोड काम करता है। मेरी समस्या यह है कि मैं आधार नियंत्रक से इंजेक्ट विशेषता को हटाना चाहता हूं और इसे इसके बजाय Ninject ServiceModule में निर्दिष्ट करना चाहता हूं। मैं दूसरे शब्दों में, सेवामैप्यूल में बाध्यकारी नियम लिखने के बारे में कैसे जाउंगा जो निनजेक्ट को बेस नियंत्रक में संपत्ति में उत्पाद सेवा को इंजेक्ट करने के लिए कहता है?
यदि मैं विशेषता को हटा देता हूं तो मुझे एक NullReferenceException मिलेगा।
रुबेन, क्या आप प्रदान कर सकते हैं और उदाहरण के लिए मैं सेवा मॉड्यूल में बाध्यकारी नियम लिखने के बारे में कैसे कहूंगा जो निनजेक्ट को बेस नियंत्रक में संपत्ति में उत्पाद सेवा को इंजेक्ट करने के लिए कहता है? धन्यवाद! – Thomas
@ थॉमस: मैंने कभी भी उस प्रकृति का अनुकूलन नहीं किया है (और जैसा कि मुझे विश्वास नहीं है कि यह एक अच्छा दृष्टिकोण है, इसकी कोई इच्छा नहीं है), दुर्भाग्य से ऐसा करने में समय नहीं लगेगा - क्षमा करें ... (और जैसा मेरा जवाब अब तक मूल्य-कम होने का अनुमान लगाया गया है, मैं ऐसा क्यों करूं - ऐसा नहीं है कि मेरे पास कोई प्रतिक्रिया है कि मेरा उत्तर समझा गया है या सही है?) –