Невозможно разрешить службу для типа «MediatR.IMediator». ⇐ C#
-
Гость
Невозможно разрешить службу для типа «MediatR.IMediator».
Я пытаюсь создать .NET Core API с помощью CQRS, но не могу его создать из-за ошибки MediatR:
System.AggregateException: 'Некоторые службы невозможно создать (ошибка при проверке дескриптора службы 'ServiceType: Core.Infrastructure.Domain.Queries.IQueryBus Срок службы: Scoped ImplementationType: Core.Infrastructure.Bus.QueryBus': невозможно) разрешить службу для типа «MediatR.IMediator» при попытке активировать «Core.Infrastructure.Bus.QueryBus».)»
Я уже добавил AddScope для своего QueryBus и т. д. Вот мой код (приложение для AWS):
публичный класс Startup { общедоступная константная строка AppS3BucketKey = "AppS3Bucket"; публичный запуск (конфигурация IConfiguration) { Конфигурация = конфигурация; } общественная статическая конфигурация IConfiguration {get; частный набор; } общественная недействительность ConfigurationServices (службы IServiceCollection) { Services.AddControllers(); Services.AddAWSService(); Services.AddScoped(); Services.AddScoped(); Services.AddScoped(); } public void Настройка (приложение IApplicationBuilder, среда IWebHostEnvironment) { если (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); приложение.UseRouting(); приложение.UseAuthorization(); app.UseEndpoints(конечные точки => { конечные точки.MapControllers(); }); } } QueryBus:
с использованием System.Threading.Tasks; использование Core.Infrastructure.Domain.Queries; использование МедиатР; пространство имен Core.Infrastructure.Bus { общедоступный класс QueryBus: IQueryBus { частный IMediator _mediator только для чтения; общедоступный QueryBus (посредник IMediator) { _медиатор = посредник; } public Task Send(запрос TQuery), где TQuery: IQuery { вернуть _mediator.Send(запрос); } } } IQueryBus:
с использованием System.Threading.Tasks; пространство имен Core.Infrastructure.Domain.Queries { общедоступный интерфейс IQueryBus { Task Send(запрос TQuery), где TQuery: IQuery; } } Спасибо за помощь
Я пытаюсь создать .NET Core API с помощью CQRS, но не могу его создать из-за ошибки MediatR:
System.AggregateException: 'Некоторые службы невозможно создать (ошибка при проверке дескриптора службы 'ServiceType: Core.Infrastructure.Domain.Queries.IQueryBus Срок службы: Scoped ImplementationType: Core.Infrastructure.Bus.QueryBus': невозможно) разрешить службу для типа «MediatR.IMediator» при попытке активировать «Core.Infrastructure.Bus.QueryBus».)»
Я уже добавил AddScope для своего QueryBus и т. д. Вот мой код (приложение для AWS):
публичный класс Startup { общедоступная константная строка AppS3BucketKey = "AppS3Bucket"; публичный запуск (конфигурация IConfiguration) { Конфигурация = конфигурация; } общественная статическая конфигурация IConfiguration {get; частный набор; } общественная недействительность ConfigurationServices (службы IServiceCollection) { Services.AddControllers(); Services.AddAWSService(); Services.AddScoped(); Services.AddScoped(); Services.AddScoped(); } public void Настройка (приложение IApplicationBuilder, среда IWebHostEnvironment) { если (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); приложение.UseRouting(); приложение.UseAuthorization(); app.UseEndpoints(конечные точки => { конечные точки.MapControllers(); }); } } QueryBus:
с использованием System.Threading.Tasks; использование Core.Infrastructure.Domain.Queries; использование МедиатР; пространство имен Core.Infrastructure.Bus { общедоступный класс QueryBus: IQueryBus { частный IMediator _mediator только для чтения; общедоступный QueryBus (посредник IMediator) { _медиатор = посредник; } public Task Send(запрос TQuery), где TQuery: IQuery { вернуть _mediator.Send(запрос); } } } IQueryBus:
с использованием System.Threading.Tasks; пространство имен Core.Infrastructure.Domain.Queries { общедоступный интерфейс IQueryBus { Task Send(запрос TQuery), где TQuery: IQuery; } } Спасибо за помощь
Мобильная версия