Middle
Dependency Injection — қалай жұмыс істейді? Қызметтердің өмір сүру уақыттарының айырмашылығы қандай?
sobes.tech AI
AI-дан жауап
Dependency Injection (DI) — бұл сырттан объектінің тәуелділіктерін беру паттерні, оны ішінен құрудың орнына. C# тілінде DI көбінесе конструктор, қасиеттер немесе әдістер арқылы жүзеге асырылады, сондай-ақ, мысалы, Microsoft.Extensions.DependencyInjection сияқты фреймворктер қолдайды.
DI-дің маңызды бөлігі — қызметтердің өмір сүру уақытын басқару:
- Transient — қызмет әр сұрау кезінде жасалады. Бұл жеңіл, күйді сақтамайтын объектілер үшін пайдаланылады.
- Scoped — қызмет бір рет құрылады және бір аймаққа (мысалы, веб-қосымшада HTTP сұрауына) тиесілі. Бұл бір сұрау аясында күйді сақтау үшін мүмкіндік береді.
- Singleton — қызмет барлық қосымшаның жұмыс уақытына бір рет құрылады және қайта пайдаланылады.
Қызметтерді тіркеу мысалы:
services.AddTransient<IService, Service>();
services.AddScoped<IService, Service>();
services.AddSingleton<IService, Service>();
Осылайша, DI тестілеуді жеңілдетеді, модульділік пен басқарылуды арттырады, ал қызметтердің өмір сүру уақыты ресурстарды және объектілердің күйін бақылауға көмектеседі.