У меня есть служба, которая должна быть создана в начале приложения, и я хочу предоставить информацию об услуге извне программы.
Моя идея - сервер gRP C (. NET Core 3.1), который создает сервис в начале программы и перенаправляет сервис на контроллер gRP C, используя контейнер Io C по умолчанию. Моя служба также должна иметь возможность использовать другие службы, используя значение по умолчанию IServiceProvider
(например, для ведения журнала).
Мой первый подход заключался в создании службы в ConfigureServices
и передаче экземпляра в AddSingleton
. Это не сработало, потому что моему сервису нужны IServiceProvider
, которые еще не были встроены в ConfigureServices
.
Затем я обнаружил, что вы можете указать фабрику, которая принимает поставщика услуг в качестве аргумента:
services.AddSingleton<IService>(serviceProvider => new Service(serviceProvider));
Теперь мой сервис получает доступ ко всем остальным сервисам, но он создается только после того, как клиент gRP C запрашивает информацию об услуге.
Есть ли способ мгновенно создать службу?
Заранее спасибо.