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>(); // Տարածք