Como você resolve uma dependência do Ninject no arquivo global no ASP.NET
Estou usando os assemblies Ninject e Ninject.Web com um aplicativo de formulários da web. No arquivo global.asax, eu especifico as ligações da seguinte forma:
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;
}
}
Então, em minhas páginas, simplesmente preciso herdá-las deNinject.Web.PageBase
. Depois, posso configurar as propriedades no código por trás das páginas e colocar o[inject]
atributo sobre ele.
[inject]
public IVendorBriefController vendorBriefController { get; set; }
Isso funciona muito bem. Mas agora eu preciso fazer alguma injeção de dependência no próprio arquivo Global.asax. Eu preciso de uma instância deIErrorLogEntryController
no meuApplication_Error
evento. Como resolvo isso e uso minha ligação especificada para o tipo abstrato?
protected void Application_Error(object sender, EventArgs e)
{
IErrorLogEntryController = ???;
}