Sobes.tech
Junior — Middle

Тәуелділіктерді енгізу контейнерінде тіркелгеннен кейін объектінің өмір сүру мерзімі қалай анықталады?

sobes.tech AI

AIден жооп

Объекттин бар болуу мөөнөтү (lifetime) анын жашоо цикли (lifetime) менен аныкталган, ал катталганда белгиленет.

C#да негизги жашоо цикли варианттары (мисалы, Microsoft.Extensions.DependencyInjectionда):

  • Transient: ар бир суроо үчүн жаңы экземпляр түзүлөт.
  • Scoped: бир экземпляр чектөөгө (мисалы, веб колдонмодо HTTP суроо үчүн) түзүлөт.
  • Singleton: биринчи суроодо түзүлөт жана колдонмонун аяктаганча жашайт.

Төрт түрдүү жашоо мөөнөттөрү менен кызматты каттоо мисалы:

services.AddTransient<IMyService, MyService>(); // ар жолу жаңы объект
services.AddScoped<IMyService, MyService>();   // сессия/суроо үчүн бир объект
services.AddSingleton<IMyService, MyService>(); // бүт убакыт бою бир объект

Ошентип, объекттин бар болуу мөөнөтү DI контейнерине каттоо учурунда тандалган жашоо циклине көз каранды.