J'ai une application ASP.NET MVC 6 (beta-4).
public void ConfigureServices(IServiceCollection services)
{
// Logging
services.AddLogging();
// ...
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
{
// Add the console logger.
loggerfactory.AddConsole(minLevel: LogLevel.Warning);
// ...
}
Et j'ai un contrôleur ...
public class HomeController :
Controller
{
ILogger _logger;
public HomeController(ILogger logger)
{
_logger = logger;
}
// ...
}
Mais quand je n'obtiens pas le service correctement enregistré d'une manière ou d'une autre: InvalidOperationException: Unable to resolve service for type 'Microsoft.Framework.Logging.ILogger' while attempting to activate 'HomeController'.
. Que fais-je de mal avec l'enregistrement de l'enregistreur?
La services.AddLogging();
n'a pas fonctionné pour moi, j'ai donc ajouté ces deux instructions à ConfigureServices
:
services.AddSingleton<ILoggerFactory, LoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
Maintenant, le conteneur DI est heureux et tout fonctionne.