Junior — Middle
Dependency Injection kontekstida Scoped ob'ektlarining ko'lamlari Transientdan qanday farq qiladi?
sobes.tech AI
AIdan javob
C# da Dependency Injection kontekstida, Scoped va Transient doirasi ob'ektlar yaratilish vaqtini belgilaydi:
-
Transient: ob'ekt har safar so'ralganda yangi tarzda yaratiladi. Bu, har bir xizmat chaqiruvi yoki in'ektsiya uchun yangi nusxa yaratilishini anglatadi.
-
Scoped: ob'ekt bir marta, bir so'rov (scope) davomida yaratiladi. Veb-ilovalarda, bu odatda, bir HTTP so'rov ichida bir xil nusxa ishlatilishini, lekin boshqa so'rov uchun yangi nusxa yaratilishini anglatadi.
Misol:
services.AddTransient<IMyService, MyService>(); // har so'rovda yangi ob'ekt
services.AddScoped<IMyService, MyService>(); // HTTP so'rov uchun bir ob'ekt
Shu bilan, Scoped, bir so'rov doirasida holatni saqlash uchun qulay, Transient esa stateless xizmatlar uchun, har safar yangi nusxa kerak bo'lsa, mos keladi.