Sobes.tech
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.