Junior — Middle
Kako se određuje rok trajanja objekta nakon njegove registracije u kontejneru za ubrizgavanje zavisnosti?
sobes.tech АИ
Одговор од АИ
Vreme postojanja objekta u kontejneru za ubrizgavanje zavisnosti (DI) određuje njegov životni ciklus (lifetime), koji se postavlja prilikom registracije.
Glavne opcije životnog ciklusa u C# (na primer, u Microsoft.Extensions.DependencyInjection):
- Transient: novi primerak se kreira pri svakom zahtevu.
- Scoped: jedan primerak se kreira po opsegu (na primer, po HTTP zahtevu u veb aplikaciji).
- Singleton: jedan primerak se kreira pri prvom zahtevu i traje do završetka rada aplikacije.
Primer registracije servisa sa različitim vremenima trajanja:
services.AddTransient<IMyService, MyService>(); // novi objekat svaki put
services.AddScoped<IMyService, MyService>(); // jedan objekat po sesiji/zahtevu
services.AddSingleton<IMyService, MyService>(); // jedan objekat tokom celog vremena rada
Dakle, vreme postojanja objekta zavisi od izabranog životnog ciklusa pri registraciji u DI kontejneru.