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>(); // Обхват