Sobes.tech
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 კონტეინერში.