Slovenská verzeSlovensky

wiki Scoped Lifestyle

Miroslav Holec

18. února. 2020

Služba registrovaná do výchozího .NET Core kontejneru (MSDI) může být registrována s lifestyle Scoped. V takovém případě DI kontejner vytvoří instanci dané služby v rámci aktuálního scope a následně tuto instanci znovupoužívá po celou dobu daného scope. Při odbavování požadavku v ASP.NET Core aplikaci je automaticky jako implicitní scope považován Request scope. Další vnořené scopes je možné vytvářet explicitně v rámci odbavení HTTP requestu. Jako Scoped se obvykle registrují služby spojené s Entity Framework Core, díky čemuž je zajištěna konzistence DbContextu po celou dobu řešení HTTP requestu. V závislosti na architektuře aplikace však není (a nemusí) být Scoped vždy vhodnou volbou pro život DbContextu.

Běžné třídy se registrují jako Scoped v případě, kdy jsou v rámci daného scope znovupoužity a bylo by nevýhodné žádat o opakovanou konstrukci třídy. Dále je Scoped lifestyle vhodný pro vytváření instancí, které mají svůj vnitřní stav, který chceme mít dostupný po celou dobu aktuálního scope. V ostatních případech je vhodnější vytvářet instance s krátkou životností, tzv. Transient.

👨‍🎓 Webináře pro vývojáře

Vzdělávat se můžete i z pohodlí domova. Klasická školení jsem doplnil o související témata, která si můžete poslechnout v podobě živých webinářů. Přidejte se téměř 200 vývojářům, kteří se již připojili k mým webinářům!

Termín Místo
🍀 Konzumace REST API v .NET Core červen 2020 on-line více
🍀 Nástroje a šablony projektů v .NET Core červen 2020 on-line více
🍀 Entity Framework Core červen 2020 on-line více

Loading
Otevřít chat