Je možné zahrnout argument v IServiceScopeFactory.ServiceProvider.GetRequiredService<IServiceClass>()?

0

Otázka

Říkají, že mám následující kód v "HostedService" třídy pomocí IServiceScopeFactory spustit působnosti a vytvořit službu, instance třídy (jak je vysvětleno zde -> Jak bych měl aplikovat DbContext stupně do IHostedService?):

using (var scope = ScopeFactory.CreateScope())
{                                 
   var provisioningService = scope.ServiceProvider.GetRequiredService<IProvisioningService>();
}

Takže bych chtěl udělat něco podobného jako v níže uvedeném kódu zahrnout parametr uvnitř instance služby tvorba:

services.AddSingleton<IUserCarrierService>(x => new UserCarrierService(user));

ale toto provést pomocí IServiceScopeFactory třídy. Pokud ne, je možné přepsat na všechny jednou DI postaven v Startu třídy v pozdější fázi .net jádro spuštění programu?

1

Nejlepší odpověď

0

IServiceScopeFactory neumožňuje absolvování přepíše/další závislosti při vytváření vnořených obrazovkách. Musíte buď použít 3rd party kontejner , který umožňuje přidávat zápisy do života rozsahu jako Autofac (viz také tento) nebo redesign vašeho IUserCarrierService tak to vám nějaký druh zosobnění mechanismus.

2021-11-23 17:20:45

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................