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:
- 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();
}
}
- 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; }
}
- 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.