Dependency Injection (DI) é integrada ao .NET moderno — o framework inclui um contêiner de DI que constrói automaticamente classes e injeta suas dependências. Você registra serviços (mapeando interfaces para implementações) e o contêiner as resolve, permitindo código fracamente acoplado e testável. É fundamental para ASP.NET Core.
Registrando serviços
// in Program.cs — register services with a LIFETIME
builder.Services.AddScoped<IUserRepository, UserRepository>();
builder.Services.AddSingleton<ICacheService, CacheService>();
builder.Services.AddTransient<IEmailSender, EmailSender>();
