Sobes.tech
Junior — Middle

Կարող եք նշել այլ տիպերի օբյեկտների կյանքի ցիկլեր, որոնք օգտագործվում են IoC կոնտեյներներում, բացի singleton-ից?

sobes.tech AI

Պատասխան AI-ից

Ինքնուրույն կյանքի ցիկլից բացի, IoC կոնտեյներներում հաճախ օգտագործվում են հետևյալ օբյեկտների կյանքի ցիկլի տեսակները՝

  • Transient (Տարածական): յուրաքանչյուր օբյեկտի հարցում ստեղծվում է նոր օրինակ: Օգտագործվում է, երբ անհրաժեշտ է թարմ, վիճակազուրկ օբյեկտ:
  • Scoped (Տարածք): օբյեկտը ստեղծվում է մեկ անգամ սահմանված տարածքի համար, օրինակ՝ մեկ HTTP հարցում վեբ հավելվածներում: Տարածքը ավարտվելուց հետո օբյեկտը ոչնչացվում է:
  • Per Thread (Անհատական ​​համարով): օբյեկտը ստեղծվում է մեկ անգամ յուրաքանչյուր թելում, օգտակար բազմաթելային հավելվածների համար:

Օրինակ C#-ում՝ օգտագործելով Microsoft.Extensions.DependencyInjection:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Տարածական
services.AddScoped<IMyService, MyService>();   // Տարածք