COVID-19: Všechna školení nyní i on-line. Přečtěte si mé tipy na vzdělávání v době koronavirové.
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 - nyní zdarma

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
🍀 Software a nástroje, které používám 6. října 2020 online více
🍀 Co ještě nevíte o middlewares 9. října 2020 online více
🍀 Blazor Server 16. října 2020 online více
🍀 Novinky v .NET 5 pro REST API 21. října 2020 online více

Loading