Junior — Middle
Máte zkušenosti s používáním kontejnerů inverze řízení ve svých projektech?
sobes.tech AI
Odpověď od AI
Ano, v projektech v C# se často používá kontejner invertované kontroly (IoC kontejner) k řízení závislostí mezi komponentami aplikace. To usnadňuje vytváření a konfiguraci objektů, zvyšuje modularitu a testovatelnost kódu.
Například s populárními IoC kontejnery, jako jsou Microsoft.Extensions.DependencyInjection, Autofac nebo Ninject, lze registrovat služby a automaticky je vkládat do konstruktorů tříd.
Příklad použití 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($"Odesílání emailu: {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("Ahoj IoC!");
}
}
Tento přístup usnadňuje výměnu implementací, zjednodušuje testování pomocí mock objektů a podporuje čistší architekturu.