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 контейнерине каттоо учурунда тандалган жашоо циклине көз каранды.