Невозможно разрешить службу для типа Microsoft.Extensions.Logging.ILogger.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно разрешить службу для типа Microsoft.Extensions.Logging.ILogger.

Сообщение Anonymous »

Я создаю автономное приложение, которое подключается к другому проекту для отправки элементов, которые в конечном итоге вставляются в базу данных (включено несколько обработчиков событий, но я не вызываю их напрямую, на них ссылается команда, которую я вызов). Когда я вызываю рассматриваемую команду через MediatR, я получаю следующую ошибку:

Невозможно разрешить службу для типа
'Microsoft.Extensions. Журналирование.ILogger

Код: Выделить всё

1[TransactionBehavior
2[SubmitItemCommand,SubmitItemCommandResponse]]'
при попытке активировать
'TransactionBehavior`2[SubmitItemCommand,SubmitItemCommandResponse]'.

В моем приложении есть стартовый класс, который выглядит следующим образом:

Код: Выделить всё

public ServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMediatR(typeof(Startup));

services.AddTransient(typeof(IPipelineBehavior), typeof(TransactionBehavior));

...

return services.BuildServiceProvider();
}
< /code>
и рассматриваемая команда ниже: < /p>
public class TransactionBehavior : IPipelineBehavior where TRequest : Command
{
private readonly ILogger _logger;

public TransactionBehavior(ILogger logger)
{
_logger = logger ?? throw new ArgumentException(nameof(logger));
}

public async Task Handle(TRequest request, CancellationToken cancellationToken, RequestHandlerDelegate next)
{
try
{
...
}
catch (Exception ex)
{
_logger.LogError(ex, "Error handling transaction for {CommandName} ({@Command})", request.GetType().Name, request);

throw;
}
}
}
Я пробовал несколько решений, включая добавление элемента в конфигурацию служб для ILogger, однако когда я это делаю, я получаю ошибку:
< blockquote>
Невозможно создать экземпляр типа реализации
'Microsoft.Extensions.Logging.ILogger

Код: Выделить всё

1[TransactionBehavior< /code> 2 [OpportIteMcommand, OpportIteMcommAndResponse]] '
для типа службы
'microsoft.extensions.logging.ilogger1[TransactionBehavior
2[SubmitItemCommand,SubmitItemCommandResponse]]'

.>

Подробнее здесь: https://stackoverflow.com/questions/741 ... ng-ilogger
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»