Sobes.tech
Junior — Middle

Можете ли да назовете други типове цикли на живот на обекти, използвани в IoC контейнери, освен singleton?

sobes.tech AI

Отговор от AI

Освен жизнения цикъл Singleton, в IoC контейнерите често се използват следните типове жизнен цикъл на обектите:

  • Transient (Преходен): всяко искане за обект създава нов екземпляр. Използва се, когато е необходим свеж обект без състояние.
  • Scoped (Обхват): обектът се създава веднъж за определен обхват, например за един HTTP заявка в уеб приложения. След приключване на обхвата, обектът се унищожава.
  • Per Thread (На нишка): обектът се създава веднъж за всяка нишка, полезно за многонитови приложения.

Пример в C# с използване на Microsoft.Extensions.DependencyInjection:

services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Преходен
services.AddScoped<IMyService, MyService>();   // Обхват