Sobes.tech
Junior — Middle

Ako sa určuje doba existencie objektu po jeho zavedení prostredníctvom mechanizmu Dependency Injection?

sobes.tech AI

Odpoveď od AI

Dĺžka života objektu vytvorenému pomocou Dependency Injection (DI) sa určuje časom života (lifetime), ktorý sa nastaví pri registrácii služby v DI kontajneri. V C# (napríklad v ASP.NET Core) existujú tri hlavné typy času života:

  • Transient — nový inštancia sa vytvorí pri každom požiadavku služby.
  • Scoped — jedna inštancia sa vytvorí pre oblasť (napríklad pre HTTP požiadavku) a znovu sa použije v rámci tejto oblasti.
  • Singleton — jedna inštancia sa vytvorí pri prvej požiadavke a žije až do ukončenia aplikácie.

Príklad registrácie:

services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();

Takže, dĺžka života objektu závisí od zvoleného času života pri registrácii v DI kontajneri.