Sobes.tech
Junior — Middle

Jakými způsoby lze implementovat závislostní injekci v kontrolerech aplikace?

sobes.tech AI

Odpověď od AI

Vstřikování závislostí (Dependency Injection, DI) do kontrolerů v aplikaci v C# lze realizovat několika způsoby:

  1. Pomocí konstruktoru — nejběžnější a doporučený způsob. Závislosti jsou předávány přes parametry konstruktoru kontroleru.
public class MyController : Controller
{
    private readonly IService _service;

    public MyController(IService service)
    {
        _service = service;
    }

    public IActionResult Index()
    {
        // Použití _service
        return View();
    }
}
  1. Pomocí vlastností (Property Injection) — závislosti jsou nastavovány přes vlastnosti kontroleru. Méně preferováno, protože závislosti nemusí být včas inicializovány.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Pomocí metod (Method Injection) — závislosti jsou předávány jako parametry metod kontroleru.
public IActionResult Index([FromServices] IService service)
{
    // Použití service
    return View();
}

V ASP.NET Core podporuje vestavěný kontejner DI všechny tyto způsoby, ale nejčistší a nejpohodlnější pro testování je injekce přes konstruktor.