Я не уверен почему, но я не вижу этот статический класс нигде в пространстве имен Ninject.Web. @qes Я не уверен, что еще не проверял это. Хм, может быть, я бросил пистолет. Я хотел бы найти этот KernelContaine, р.
ользую сборки Ninject и Ninject.Web с приложением веб-форм. В файле global.asax я указываю привязки так:
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;
}
}
Тогда на моих страницах я просто должен заставить их наследовать отNinject.Web.PageBase
, Затем я могу настроить свойства кода позади страниц и поместить[inject]
атрибут над ним.
[inject]
public IVendorBriefController vendorBriefController { get; set; }
Это прекрасно работает. Но теперь мне нужно внести некоторые зависимости в сам файл Global.asax. Мне нужен экземплярIErrorLogEntryController
в моемApplication_Error
мероприятие. Как решить эту проблему и использовать указанную привязку для абстрактного типа?
protected void Application_Error(object sender, EventArgs e)
{
IErrorLogEntryController = ???;
}