Der Dienst für den Typ Microsoft.Extensions.Logging.ILogger konnte nicht aufgelöst werden

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Der Dienst für den Typ Microsoft.Extensions.Logging.ILogger konnte nicht aufgelöst werden

by Guest » 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.ilogger

Code: Select all

1[TransactionBehavior
2[SubmitItemCommand,SubmitItemCommandResponse]]'
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();
}
und der betreffende Befehl ist unten:

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
2[SubmitItemCommand,SubmitItemCommandResponse]]'
für Diensttyp
'Microsoft.Extensions.Logging.ILogger

Code: Select all

1[TransactionBehavior
2[SubmitItemCommand,SubmitItemCommandResponse]]'

.

Top