C
Join ServerC#
help
✅ Cannot resolve scoped service...
Ddemndev1/27/2023
What I did wrong? Here's how I injected
Injection of dispatchers:
IQueryHandler
s to DI:services.Scan(selector =>
{
selector.FromCallingAssembly()
.AddClasses(filter => { filter.AssignableTo(typeof(IQueryHandler<,>)); })
.AsImplementedInterfaces()
.WithScopedLifetime();
});
Injection of dispatchers:
services.AddSingleton<ICommandDispatcher, CommandDispatcher>()
.Decorate<ICommandDispatcher, CommandDispatcherDecorator>();
services.AddSingleton<IQueryDispatcher, QueryDispatcher>();
QueryDispatcher
:public class QueryDispatcher : IQueryDispatcher
{
private readonly IServiceProvider _serviceProvider;
public QueryDispatcher(IServiceProvider serviceProvider) => _serviceProvider = serviceProvider;
public Task<TQueryResult> Dispatch<TQuery, TQueryResult>(TQuery query, CancellationToken ct)
{
var handler = _serviceProvider.GetRequiredService<IQueryHandler<TQuery, TQueryResult>>();
return handler.Handle(query, ct);
}
}

Ddemndev1/27/2023
Here's a guide from which I wrote this code: https://cezarypiatek.github.io/post/why-i-dont-use-mediatr-for-cqrs/
A/CAtakan / Cracker1/27/2023
are you trying to resolve scoped service inside singleton service ?
A/CAtakan / Cracker1/27/2023
both looks like singleton
Ddemndev1/28/2023
oh, really. thank you!