Junior — Middle
როგორ განისაზღვრება ობიექტის არსებობის ვადა მისი ინექციის მექანიზმის საშუალებით?
sobes.tech AI
პასუხი AI-სგან
Dependency Injection (DI) მეშვეობით შექმნილი ობიექტის სიცოცხლის ხანგრძლივობა განსაზღვრავს სიცოცხლის ხანგრძლივობას (lifetime), რომელიც დგინდება სერვისის რეგისტრაციის დროს DI კონტეინერში. C#-ში (მაგალითად, ASP.NET Core-ში) არსებობს სამი ძირითადი სიცოცხლის ხანგრძლივობის ტიპი:
- Transient — ახალი ეგზემპლარი შეიქმნება ყოველ სერვისის მოთხოვნისას.
- Scoped — ერთი ეგზემპლარი შეიქმნება სფეროსთვის (მაგალითად, HTTP მოთხოვნისთვის) და გამოიყენება ამ სფეროს ფარგლებში.
- Singleton — ერთი ეგზემპლარი შეიქმნება პირველ მოთხოვნაზე და სიცოცხლის ბოლომდე გრძელდება.
რეგისტრაციის მაგალითი:
services.AddTransient<IMyService, MyService>();
services.AddScoped<IMyService, MyService>();
services.AddSingleton<IMyService, MyService>();
ამიტომ, ობიექტის სიცოცხლის ხანგრძლივობა დამოკიდებულია არჩევანზე, რომელიც გაკეთებულია რეგისტრაციის დროს DI კონტეინერში.