© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•4y ago•
4 replies
demndev

✅ Cannot resolve scoped service...

What I did wrong? Here's how I injected
IQueryHandler
IQueryHandler
s to DI:
services.Scan(selector =>
        {
            selector.FromCallingAssembly()
                .AddClasses(filter => { filter.AssignableTo(typeof(IQueryHandler<,>)); })
                .AsImplementedInterfaces()
                .WithScopedLifetime();
        });
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>();
services.AddSingleton<ICommandDispatcher, CommandDispatcher>()
            .Decorate<ICommandDispatcher, CommandDispatcherDecorator>();
        services.AddSingleton<IQueryDispatcher, QueryDispatcher>();


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);
    }
}
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);
    }
}
image.png
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Cannot resolve symbol 'ServiceController'
C#CC# / help
2y ago
get scoped service
C#CC# / help
3y ago
❔ cannot resolve AddDatabaseDeveloperPageExceptionFilter();
C#CC# / help
3y ago