我在我的asp.net应用程序中使用Ninject for DI,所以我的Global类继承自NinjectHttpApplication。在global.asax中使用Ninject NLogModule记录器
在我的CreateKernel()中,我创建了自定义模块,DI对我来说工作正常。
但是,我注意到NinjectHttpApplication类中有一个Logger属性,所以我试图在Application_Error中每当发现异常时都使用它。
我想我正在为Ninject创建nlog模块,但我的记录器始终为空。这是我的CreateKernel:
protected override Ninject.Core.IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new NLogModule(), new NinjectRepositoryModule());
return kernel;
}
但是在下面的方法中,记录器总是空的。
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一个属性,并已在[进样]属性
不知道如何正确地喷射到记录器?
不应该重写Load()而不是CreateKernel()? – 2010-10-14 22:37:07