Sobes.tech
Junior — Middle

Да ли имате искуство у коришћењу контејнера инверзије управљања у својим пројектима?

sobes.tech АИ

Одговор од АИ

Da, u C# projektima često se koristi IoC kontejner za upravljanje zavisnostima između komponenti aplikacije. To omogućava pojednostavljenje kreiranja i konfiguracije objekata, povećava modularnost i testabilnost koda.

Na primer, pomoću popularnih IoC kontejnera kao što su Microsoft.Extensions.DependencyInjection, Autofac ili Ninject, možete registrovati servise i automatski ih injektovati u konstruktore klasa.

Primer korišćenja 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($"Slanje emaila: {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("Zdravo IoC!");
    }
}

Ovaj pristup olakšava zamenu implementacija, pojednostavljuje testiranje pomoću mock objekata i podstiče čišću arhitekturu.