Я использую Ninject для DI в своем приложении asp.net, поэтому мой класс Global наследуется от NinjectHttpApplication.
В моем CreateKernel () я создаю свои собственные модули, и DI работает нормально для меня.
Однако я заметил, что в классе NinjectHttpApplication есть свойство Logger, поэтому я пытаюсь использовать его в Application_Error всякий раз, когда исключение не перехватывается.
Я думаю, что я правильно создаю модуль nlog для Ninject, но мой логгер всегда нулевой. Вот мой CreateKernel:
protected override Ninject.Core.IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new NLogModule(), new NinjectRepositoryModule());
return kernel;
}
Но в следующем методе Logger всегда равен нулю.
protected void Application_Error(object sender, EventArgs e)
{
Exception lastException = Server.GetLastError().GetBaseException();
Logger.Error(lastException, "An exception was caught in Global.asax");
}
Для пояснения, Logger является свойством для NinjectHttpApplication типа ILogger и имеет атрибут [Inject]
Есть идеи, как правильно вводить в Logger?