Junior — Middle
Tem experiência na utilização de containers de inversão de controlo nos seus projetos?
sobes.tech IA
Resposta da IA
Sim, nos projetos em C# é comum usar um contêiner de inversão de controle (contenor IoC) para gerir as dependências entre os componentes da aplicação. Isto facilita a criação e configuração de objetos, aumenta a modularidade e a testabilidade do código.
Por exemplo, com contêineres IoC populares como Microsoft.Extensions.DependencyInjection, Autofac ou Ninject, pode-se registar serviços e injetá-los automaticamente nos construtores das classes.
Exemplo de uso do Microsoft.Extensions.DependencyInjection:
using Microsoft.Extensions.DependencyInjection;
public interface IMessageService {
void Send(string message);
}
public class EmailService : IMessageService {
public void Send(string message) {
Console.WriteLine($"A enviar email: {message}");
}
}
class Program {
static void Main() {
var services = new ServiceCollection();
services.AddTransient<IMessageService, EmailService>();
var provider = services.BuildServiceProvider();
var messageService = provider.GetService<IMessageService>();
messageService.Send("Olá IoC!");
}
}
Este método facilita a substituição de implementações, simplifica os testes com objetos simulados e promove uma arquitetura mais limpa.