Sobes.tech
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 тестілеуді жеңілдетеді, модульділік пен басқарылуды арттырады, ал қызметтердің өмір сүру уақыты ресурстарды және объектілердің күйін бақылауға көмектеседі.