Junior — Middle
Jak je určena doba existence objektu po jeho zavedení prostřednictvím mechanismu Dependency Injection?
sobes.tech AI
Odpověď od AI
Doba života objektu vytvořeného pomocí Dependency Injection (DI) je určena dobou života (lifetime), která je nastavena při registraci služby v DI kontejneru. V C# (například v ASP.NET Core) existují tři hlavní typy doby života:
- Transient — nová instance je vytvořena při každé žádosti o službu.
- Scoped — jedna instance je vytvořena pro oblast (například pro HTTP požadavek) a je znovu použita v rámci této oblasti.
- Singleton — jedna instance je vytvořena při první žádosti a žije až do ukončení aplikace.
Příklad registrace:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
Tímto způsobem závisí doba života objektu na zvoleném čase života při registraci v DI kontejneru.