Sobes.tech
Junior — Middle

Vysvětlete koncept Dependency Injection v ASP.NET Core a jak se používá při vývoji aplikací.

sobes.tech AI

Odpověď od AI

Injekce závislostí (DI) v ASP.NET Core je mechanismus, který umožňuje vkládání závislostí (například služeb, repozitářů) do tříd bez nutnosti je ručně vytvářet. To zvyšuje modularitu, testovatelnost a zjednodušuje správu závislostí.

V ASP.NET Core je DI integrováno do rámce a konfiguruje se v metodě ConfigureServices třídy Startup nebo v Program.cs.

Příklad registrace a použití služby:

// Rozhraní služby
public interface IMessageService {
    string GetMessage();
}

// Implementace služby
public class MessageService : IMessageService {
    public string GetMessage() => "Ahoj z DI!";
}

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

// Použití přes 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);
    }
}

Tímto způsobem ASP.NET Core automaticky vytvoří instanci MessageService a předá ji do kontroleru, čímž se eliminuje potřeba manuální tvorby objektů.