Встречается на 12% собеседований по C#

Что такое IoC-контейнер

IoC-контейнер (Inversion of Control) — это инструмент для управления зависимостями в приложении. Он автоматически создает и внедряет объекты, следуя заданным правилам, вместо того чтобы разработчик делал это вручную.

Основные функции:

  • Регистрация зависимостей (типов и их реализаций).
  • Разрешение зависимостей (создание объектов с автоматическим внедрением).
  • Управление жизненным циклом объектов (Singleton, Transient, Scoped).

Пример с Microsoft.Extensions.DependencyInjection:

csharp
var services = new ServiceCollection();
services.AddTransient<IService, MyService>(); // Регистрация
services.AddSingleton<ILogger, ConsoleLogger>();

var provider = services.BuildServiceProvider(); // Построение контейнера
var service = provider.GetService<IService>();  // Разрешение зависимости

Популярные контейнеры: Autofac, Ninject, Unity, Simple Injector.
IoC-контейнер упрощает поддержку кода, уменьшает связанность и облегчает тестирование.

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы