Я использую Ninject для DI в моем приложении asp.net, поэтому мой глобальный класс наследуется от NinjectHttpApplication.Использование Ninject NLogModule Logger в global.asax
В моем CreateKernel() я создаю свои собственные модули, и DI работает отлично для меня.
Однако я заметил, что в классе NinjectHttpApplication существует свойство Logger, поэтому я пытаюсь использовать его в Application_Error всякий раз, когда исключение не поймано.
Я думаю, что я правильно создаю модуль nlog для Ninject, но мой журнал всегда имеет значение null. Вот мой CreateKernel:
protected override Ninject.Core.IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new NLogModule(), new NinjectRepositoryModule());
return kernel;
}
Но в следующем методе Logger всегда имеет значение null.
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?
Не следует ли переопределять Load() вместо CreateKernel()? – 2010-10-14 22:37:07