Я сконфигурировал Main
моего консольного приложения так:
var services = new ServiceCollection()
.AddLogging(logging => logging.AddConsole())
.BuildServiceProvider();
И затем я пытаюсь использовать его в другом классе, например,
private readonly ILogger _logger;
public MyClass(ILogger logger)
{
_logger = logger;
}
public void MyFunc()
{
_logger.Log(LogLevel.Error, "My Message");
}
Система.InvalidOperationException: «Не удалось разрешить службу для типа« Microsoft.Extensions.Logging.ILogger »
Я пробовал решения здесь , но у меня это не сработало.
Редактировать Исходя из комментария Яакова ниже и этого комментария Github Я могу решить это правильно, выполнив
public MyClass(ILogger<MyClass> logger)
{
_logger = logger;
}
Я быЯ предпочел бы иметь это в начальном BuildServiceProvider
, но похоже, что мне придется повторять это каждый раз, когда я хочу использовать регистратор (или создать свой собственный ILogger).