Sobes.tech
Junior — Middle

Kako se određuje trajanje postojanja objekta nakon njegove implementacije putem mehanizma Dependency Injection?

sobes.tech АИ

Одговор од АИ

Vreme trajanja objekta kreiranog putem Dependency Injection (DI) određuje se vremenom trajanja (lifetime), koje se postavlja prilikom registracije servisa u DI kontejneru. U C# (na primer, u ASP.NET Core) postoje tri osnovne vrste vremena trajanja:

  • Transient — nova instanca se kreira pri svakom zahtevu za servis.
  • Scoped — jedna instanca se kreira po opsegu (na primer, po HTTP zahtevu) i koristi se ponovo unutar tog opsega.
  • Singleton — jedna instanca se kreira pri prvom zahtevu i traje do završetka aplikacije.

Primer registracije:

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

Dakle, vreme trajanja objekta zavisi od odabranog vremena trajanja pri registraciji u DI kontejneru.