Junior — Middle
Czy możesz wymienić inne typy cykli życia obiektów używanych w kontenerach IoC, oprócz singleton?
sobes.tech AI
Odpowiedź od AI
Помимо жизненного цикла Singleton, в IoC контейнерах часто используются следующие типы жизненного цикла объектов:
- Transient (Временный): каждый запрос на объект создает новый экземпляр. Используется, когда нужен свежий объект без сохранения состояния.
- Scoped (Область видимости): объект создается один раз на определенный scope, например, на один HTTP-запрос в веб-приложениях. После завершения scope объект уничтожается.
- Per Thread (На поток): объект создается один раз на поток, полезно для многопоточных приложений.
Пример в C# с использованием Microsoft.Extensions.DependencyInjection:
services.AddSingleton<IMyService, MyService>(); // Singleton
services.AddTransient<IMyService, MyService>(); // Transient
services.AddScoped<IMyService, MyService>(); // Scoped