Sobes.tech
Junior — Middle

Ինչպե՞ս է որոշվում օբյեկտի գոյության ժամկետը՝ հետո նրա ներդրման՝ Dependency Injection մեխանիզմի միջոցով։

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 կոնտեյներում։