Встречается на 12% собеседований по C#
В чем разница между Scoped и Transient
Scoped и Transient — это два разных жизненных цикла сервисов в .NET DI-контейнере.
Transient создает новый экземпляр сервиса при каждом запросе. Подходит для легковесных, не требующих состояния сервисов.
Scoped создает один экземпляр на область (например, HTTP-запрос в веб-приложении). Подходит для сервисов, которым нужно сохранять состояние в рамках одной операции.
Пример регистрации:
csharp
services.AddTransient<ITransientService, TransientService>(); // Новый экземпляр при каждом вызове
services.AddScoped<IScopedService, ScopedService>(); // Один экземпляр на запросПример использования:
csharp
public class MyController : Controller
{
public MyController(ITransientService transient, IScopedService scoped)
{
// transient — новый экземпляр для каждого вызова
// scoped — один экземпляр на весь запрос
}
}Важно: Scoped сервисы не должны использоваться в Singleton, так как это может привести к утечкам памяти.
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы