Корневой поставщик, введенный в услугу, решен от поставщика новой областиC#

Место общения программистов C#
Anonymous
Корневой поставщик, введенный в услугу, решен от поставщика новой области

Сообщение Anonymous »

У меня есть серверное приложение Blazor. У меня есть IHostedService, предназначенный для выполнения задач запуска в методе StartAsync().

Код: Выделить всё

builder.Services.AddHostedService();
В него встроен конструктор IServiceScopeFactory. Он создает новую область:

Код: Выделить всё

var provider = serviceScopeFactory
.CreateScope()
.ServiceProvider;
provider
.GetRequiredService()
.ReturnMyCtorInjectedProvider()
.GetRequiredService();
Где EntityService — это DbContext, который получает внедренный конструктором IServiceProvider.

Насколько мне известно, поскольку EntityService был получен из IServiceProvider определенной области, он должен получить IServiceProivder, который также привязан к той же области, и разрешение той же службы из него должно привести к тому же поведению, что и ее разрешение из IServiceProvider вновь созданной области, но я получаю хорошо известное ошибка: «Невозможно разрешить службу с заданной областью действия от корневого поставщика».
Похоже, что в конструктор был внедрен корневой поставщик, но чем объясняется такое поведение? Что мне не хватает?

Вернуться в «C#»