Der Dienst für den Typ Microsoft.Extensions.Logging.ILogger konnte nicht aufgelöst werden
Posted: 27 Jan 2025, 03:40
Ich erstelle eine eigenständige Anwendung, die sich in ein anderes Projekt einbindet, um Elemente einzureichen, die letztendlich in eine Datenbank eingefügt werden Anruf). Wenn ich den betreffenden Befehl über Mediatr aufrufe, erhalte ich den folgenden Fehler: < /p>
Es kann den Dienst für Typ
'microsoft.extensions nicht beheben. Protokollierung.ilogger2[SubmitItemCommand,SubmitItemCommandResponse]]'
beim Versuch,
'TransactionBehavior`2[SubmitItemCommand,SubmitItemCommandResponse]' zu aktivieren.
Ich habe eine Start-up-Klasse in meiner Bewerbung, die so aussieht:
und der betreffende Befehl ist unten:
2[SubmitItemCommand,SubmitItemCommandResponse]]'
für Diensttyp
'Microsoft.Extensions.Logging.ILogger2[SubmitItemCommand,SubmitItemCommandResponse]]'
.
Es kann den Dienst für Typ
'microsoft.extensions nicht beheben. Protokollierung.ilogger
Code: Select all
1[TransactionBehavior
beim Versuch,
'TransactionBehavior`2[SubmitItemCommand,SubmitItemCommandResponse]' zu aktivieren.
Ich habe eine Start-up-Klasse in meiner Bewerbung, die so aussieht:
Code: Select all
public ServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMediatR(typeof(Startup));
services.AddTransient(typeof(IPipelineBehavior), typeof(TransactionBehavior));
...
return services.BuildServiceProvider();
}
Code: Select all
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;
}
}
}
< /code>
Ich habe eine Reihe von Lösungen ausprobiert, darunter das Hinzufügen eines Elements zur Dienstekonfiguration für Iloogger. Wenn ich das tue, erhalte ich jedoch den Fehler von: < /p>
< Blockquote>
kann den Implementierungstyp
'microsoft.extensions.logging.ilogger nicht instanziieren1[TransactionBehavior
für Diensttyp
'Microsoft.Extensions.Logging.ILogger
Code: Select all
1[TransactionBehavior
.