Junior — Middle
Aveți experiență în utilizarea containerelor de inversare a controlului în proiectele dvs.?
sobes.tech AI
Răspuns de la AI
Da, în proiectele C# se folosește adesea un container de inversiune a controlului (IoC) pentru gestionarea dependențelor între componentele aplicației. Acest lucru simplifică crearea și configurarea obiectelor, crește modularitatea și testabilitatea codului.
De exemplu, cu containere IoC populare precum Microsoft.Extensions.DependencyInjection, Autofac sau Ninject, se pot înregistra servicii și le pot injecta automat în constructorii claselor.
Exemplu de utilizare a 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($"Trimitere 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("Salut IoC!");
}
}
Această abordare facilitează înlocuirea implementărilor, simplifică testarea prin obiecte mock și promovează o arhitectură mai curată.