Sobes.tech
Junior — Middle

Wyjaśnij koncepcję wstrzykiwania zależności w ASP.NET Core i jak jest ona stosowana w rozwoju aplikacji.

sobes.tech AI

Odpowiedź od AI

Wstrzykiwanie zależności (DI) w ASP.NET Core to mechanizm umożliwiający wstrzykiwanie zależności (np. serwisów, repozytoriów) do klas bez konieczności ich ręcznego tworzenia. To zwiększa modularność, testowalność i upraszcza zarządzanie zależnościami.

W ASP.NET Core DI jest zintegrowane z frameworkiem i konfiguruje się je w metodzie ConfigureServices klasy Startup lub w Program.cs.

Przykład rejestracji i użycia serwisu:

// Interfejs serwisu
public interface IMessageService {
    string GetMessage();
}

// Implementacja serwisu
public class MessageService : IMessageService {
    public string GetMessage() => "Witaj z DI!";
}

// Rejestracja w ConfigureServices
public void ConfigureServices(IServiceCollection services) {
    services.AddTransient<IMessageService, MessageService>();
}

// Użycie przez konstruktor
public class HomeController : Controller {
    private readonly IMessageService _messageService;
    public HomeController(IMessageService messageService) {
        _messageService = messageService;
    }

    public IActionResult Index() {
        var message = _messageService.GetMessage();
        return Content(message);
    }
}

W ten sposób ASP.NET Core automatycznie utworzy instancję MessageService i przekaże ją do kontrolera, eliminując konieczność ręcznego tworzenia obiektów.