J'utilise Ninject pour DI dans mon application asp.net, donc ma classe Global hérite de NinjectHttpApplication.Utilisation du Logger NLogModule Ninject dans global.asax
Dans mon CreateKernel(), je crée mes modules personnalisés et DI fonctionne correctement pour moi.
Cependant, je remarque qu'il existe une propriété Logger dans la classe NinjectHttpApplication, donc j'essaie d'utiliser ceci dans Application_Error lorsqu'une exception n'est pas interceptée.
Je pense que je crée correctement le module nlog pour Ninject, mais mon enregistreur est toujours nul. Voici mon CreateKernel:
protected override Ninject.Core.IKernel CreateKernel()
{
IKernel kernel = new StandardKernel(new NLogModule(), new NinjectRepositoryModule());
return kernel;
}
Mais dans la méthode suivante, Logger est toujours null.
protected void Application_Error(object sender, EventArgs e)
{
Exception lastException = Server.GetLastError().GetBaseException();
Logger.Error(lastException, "An exception was caught in Global.asax");
}
Pour clarifier, Logger est une propriété sur NinjectHttpApplication de type ILogger et a l'attribut [Injecter]
Toute idée comment injecter correctement dans l'enregistreur?
Ne devriez-vous pas surcharger Load() au lieu de CreateKernel()? –