내 asp.net 응용 프로그램에서 DI 용 Ninject를 사용하고 있으므로 전역 클래스는 NinjectHttpApplication에서 상속받습니다.global.asax에서 Ninject NLogModule Logger 사용
내 CreateKernel()에서 맞춤 모듈을 만들고 DI가 정상적으로 작동합니다.
그러나 NinjectHttpApplication 클래스에 Logger 속성이 있다는 것을 알고 있으므로 예외가 잡힐 때마다 Application_Error에서이 속성을 사용하려고합니다.
Ninject에 대해 nlog 모듈을 올바르게 만들고 있다고 생각하지만 내 로거는 항상 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");
}
명확히하기 위해, 로거 유형 ILogger입니다의 NinjectHttpApplication의 속성이며, [주사하고는]
모든 아이디어를 어떻게 로거에 제대로 주입 특성을했다?
CreateKernel() 대신 Load()를 재정의해야합니까? –