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