¿Cómo se resuelve una dependencia de Ninject en el archivo global en ASP.NET
Estoy usando los ensamblados Ninject y Ninject.Web con una aplicación de formularios web. En el archivo global.asax especifico los enlaces de esta manera:
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;
}
}
Entonces en mis páginas simplemente tengo que hacer que hereden deNinject.Web.PageBase
. Entonces puedo configurar propiedades en el código detrás de las páginas y poner el[inject]
atributo sobre él.
[inject]
public IVendorBriefController vendorBriefController { get; set; }
Esto funciona muy bien. Pero ahora necesito hacer una inyección de dependencia en el archivo Global.asax. Necesito una instancia deIErrorLogEntryController
en miApplication_Error
evento. ¿Cómo resuelvo esto y utilizo mi enlace especificado para el tipo abstracto?
protected void Application_Error(object sender, EventArgs e)
{
IErrorLogEntryController = ???;
}