Sobes.tech
Junior — Middle

Akými spôsobmi je možné implementovať injekciu závislostí v kontroléroch aplikácie?

sobes.tech AI

Odpoveď od AI

Vstrekovanie závislostí (Dependency Injection, DI) do kontrolérov v aplikácii v C# je možné realizovať viacerými spôsobmi:

  1. Pomocou konštruktora — najbežnejší a odporúčaný spôsob. Závislosti sa odovzdávajú cez parametre konštruktora kontroléra.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Použitie _service
        return View();
    }
}
  1. Pomocou vlastností (Property Injection) — závislosti sa nastavujú cez vlastnosti kontroléra. Menej preferované, pretože závislosti nemusia byť načítané včas.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Pomocou metód (Method Injection) — závislosti sa odovzdávajú ako parametre metód kontroléra.
public IActionResult Index([FromServices] IService service)
{
    // Použitie service
    return View();
}

V ASP.NET Core podporuje vstavaný DI kontajner všetky tieto spôsoby, ale najčistejšie a najpohodlnejšie na testovanie je injektovanie cez konštruktor.