Sobes.tech
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.