Добрый день, есть проблема со взаимосвязанными сервисами
Programm.cs
builder.Logging.AddLog4Net();
var appDataConfiguration = builder.Configuration
.GetSection("ConnectionStrings")
.Get<AppDataConfiguration>();
builder.Services.AddSingleton(appDataConfiguration);
builder.Services.AddScoped<AppDataContext>();
AppDataContext
public AppDataContext(AppDataConfiguration configuration, ILogger logger)
{
_connectString = configuration.Default;
_logger = logger;
}
При запуске возникает ошибка
Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate ...
Как исправить, чтобы заработало и ссылка на сервис логирования передавалась в AppDataContext?
Здравствуйте, CyberRussia, Вы писали:
CR>AppDataContext
CR>CR>public AppDataContext(AppDataConfiguration configuration, ILogger logger)
CR>{
CR> _connectString = configuration.Default;
CR> _logger = logger;
CR>}
CR>
Как-то так:
public AppDataContext(AppDataConfiguration configuration, ILogger<AppDataContext> logger)
{
_connectString = configuration.Default;
_logger = logger;
}
Здравствуйте, Valeriy_Gourov, Вы писали:
V_G>Как-то так:
V_G>V_G>public AppDataContext(AppDataConfiguration configuration, ILogger<AppDataContext> logger)
V_G>{
V_G> _connectString = configuration.Default;
V_G> _logger = logger;
V_G>}
V_G>
Спасибо, заработало!
Здравствуйте, CyberRussia, Вы писали:
CR>При запуске возникает ошибка
CR>CR>Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate ...
Интерфейс ILogger не публикуется. Вместо этого публикуется ILogger<T> с реализацией Logger<T> (вот прм так, открытыми типами).
В реализации Logger<T> просто делегируются все вызовы к ILogger. Сам ILogger получается обращением к другому синглтону, ILoggerFactory.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>