Re: asp.net core + log4net
От: Valeriy_Gourov Украина https://valeriygourovresume.azurewebsites.net
Дата: 17.09.22 10:07
Оценка: 78 (1)
Здравствуйте, 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;
}
asp.net core + log4net
От: CyberRussia  
Дата: 17.09.22 09:27
Оценка:
Добрый день, есть проблема со взаимосвязанными сервисами

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?
Re[2]: asp.net core + log4net
От: CyberRussia  
Дата: 17.09.22 20:24
Оценка:
Здравствуйте, 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>



Спасибо, заработало!
Re: asp.net core + log4net
От: Ночной Смотрящий Россия  
Дата: 19.09.22 14:09
Оценка:
Здравствуйте, 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.