मुझे लगता है कि सरल सवाल है, लेकिन मैंने अपने नियंत्रकों के लिए बेस इंजेक्शन के माध्यम से कुछ सेवाओं को इंजेक्शन देने के लिए बेस क्लास प्राप्त करने का प्रयास करने में एक घंटे बिताए हैं। संपत्तियों को पहली बार संरक्षित किया गया था, लेकिन वस्तुओं को सार्वजनिक रूप से बदलने के बाद, वस्तुओं ने काम किया। क्या संपत्तियों को संरक्षित करने और आईओसी को काम करने के लिए वैसे भी है?बेस क्लास में निलंबित संपत्तियों को निलंबित क्यों नहीं करेगा?
यहां मेरा सेटअप है।
public class BaseController : Controller
{
[Inject]
protected LoggingInterface.ILogger<BaseController> Logger { set; get; }
[Inject]
protected IRepository Repository { set; get; }
protected override void OnAuthorization(AuthorizationContext filterContext)
{
....
base.OnAuthorization(filterContext);
}
}
और NinjectMVC3 App_Start
private static void RegisterServices(IKernel kernel)
{
kernel.Bind(typeof(LoggingInterface.ILogger<>)).To(typeof(Log4NetLogger<>));
kernel.Bind<IRepository>().To<Repository>();
kernel.Bind<IUserService>().To<UserService>();
}
में बूट-साईस गुण भी सार्वजनिक सेटर की जरूरत नहीं है में धन्यवाद, स्टीफन
धन्यवाद डारिन, यही वह था जो मैंने बस इसके साथ खेलने से निष्कर्ष निकाला था। गुणों के लिए अनिवार्य कारण यह है कि वंशजों को सीटीआर इंजेक्शन के साथ मिलकर मिल जाता है। ध्यान रखें। –