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
.