Junior — Middle
Kaip nustatomas objekto egzistavimo laikas po jo įgyvendinimo per Dependency Injection mechanizmą?
sobes.tech AI
Atsakymas iš AI
Dependency Injection (DI) pagalba sukurtam objektui gyvenimo trukmė nustatoma pagal gyvenimo trukmę (lifetime), kuri nustatoma registruojant paslaugą DI konteineryje. C# (pavyzdžiui, ASP.NET Core) yra trys pagrindiniai gyvenimo trukmės tipai:
- Transient — naujas egzempliorius sukuriamas kiekvieno paslaugos užklausos metu.
- Scoped — vienas egzempliorius sukuriamas tam tikram laukui (pavyzdžiui, HTTP užklausai) ir naudojamas šio laukų ribose.
- Singleton — vienas egzempliorius sukuriamas pirmojo užklausos metu ir gyvena iki programos pabaigos.
Registracijos pavyzdys:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
Taigi, objekto gyvenimo trukmė priklauso nuo pasirinkto gyvenimo trukmės laiko registracijos metu DI konteineryje.