Dependency Injection (DI) встроен в современный .NET — фреймворк включает DI-контейнер, который автоматически конструирует классы и внедряет их зависимости. Вы регистрируете сервисы (сопоставляя интерфейсы с реализациями), а контейнер их разрешает, позволяя создавать слабо связанный и тестируемый код. Это основа ASP.NET Core.
Регистрация сервисов
// in Program.cs — register services with a LIFETIME
builder.Services.AddScoped<IUserRepository, UserRepository>();
builder.Services.AddSingleton<ICacheService, CacheService>();
builder.Services.AddTransient<IEmailSender, EmailSender>();
