Junior — Middle
93
Dependency Injection-те объектілердің өмірлік циклдері транзиентті, Scoped және синглтон режимдерінде қалай ерекшеленеді?
AI-дан жауап
sobes.tech AI
C# тілінде Dependency Injection (DI) кезінде объектінің өмірлік циклі оның тіркелу режимімен анықталады:
-
Transient (уақытша): әр сұрау кезінде жаңа экземпляр құрылады. Бұл жеңіл, күй сақтамайтын қызметтер үшін қолайлы.
-
Scoped (ауқымда): объект бір ауқымға, әдетте веб-қосымшаларда бір HTTP-сұрауға, тіркеледі. Барлық тәуелділіктер осы сұрауда бірдей экземплярды алады.
-
Singleton (бірегей): объект бірінші сұрауда құрылады және қосымшаның жұмыс уақыты бойы өмір сүреді. Барлық сұраулар бірдей экземплярды алады.
ASP.NET Core-да тіркеу мысалы:
services.AddTransient<IService, Service>(); // әр сұрауда жаңа объект
services.AddScoped<IService, Service>(); // сұрау бойынша бір объект
services.AddSingleton<IService, Service>(); // барлық уақыт бойы бір объект
Демек, режим таңдау объектінің қанша уақыт өмір сүруі керек және ол қалай қолданылатынына байланысты.