c# - How do you resolve a Ninject dependency in the global file in ASP.NET? -
i using ninject , ninject.web assemblies web forms application. in global.asax file specify bindings so:
public class global : ninjecthttpapplication { protected override ikernel createkernel() { ikernel kernel = new standardkernel(); // vendor briefs. kernel.bind<ivendorbriefrepository>().to<vendorbriefrepository>().inrequestscope(); kernel.bind<ivendorbriefcontroller>().to<vendorbriefcontroller>().inrequestscope(); // search services. kernel.bind<isearchservicescontroller>().to<searchservicescontroller>().inrequestscope(); kernel.bind<isearchservicesrepository>().to<searchservicesrepository>().inrequestscope(); // error logging kernel.bind<ierrorlogentrycontroller>().to<errorlogentrycontroller>().inrequestscope(); kernel.bind<ierrorlogentryrepository>().to<errorlogentryrepository>().inrequestscope(); return kernel; } }
then in pages have make them inherit ninject.web.pagebase
. can set properties on code behind pages , put [inject]
attribute on it.
[inject] public ivendorbriefcontroller vendorbriefcontroller { get; set; }
this works great. need dependency injection in global.asax file itself. need instance of ierrorlogentrycontroller
in application_error
event. how resolve , use specified binding abstract type?
protected void application_error(object sender, eventargs e) { ierrorlogentrycontroller = ???; }
simply same thing in global class
[inject] public ierrorlogentrycontroller errorlogentrycontroller { get; set; }
ninjecthttpapplication injects after kernel created.
Comments
Post a Comment