Junior — Middle
Hogyan valósítható meg a függőség injektálás az alkalmazás vezérlőiben?
sobes.tech MI
Válasz az MI-től
A függőséginjektálás (Dependency Injection, DI) az alkalmazás C#-ban írt vezérlőiben többféleképpen valósítható meg:
- Konstruktoron keresztül — a leggyakoribb és ajánlott módszer. A függőségek a vezérlő konstruktorának paraméterein keresztül adhatók át.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// _service használata
return View();
}
}
- Tulajdonságokon keresztül (Property Injection) — a függőségek a vezérlő tulajdonságain keresztül kerülnek beállításra. Kevésbé ajánlott, mivel a függőségek nem feltétlenül inicializálódnak időben.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Metódusokon keresztül (Method Injection) — a függőségek paraméterként kerülnek átadásra a vezérlő metódusainak.
public IActionResult Index([FromServices] IService service)
{
// service használata
return View();
}
Az ASP.NET Core beépített DI konténere támogatja ezeket a módszereket, de a konstruktoron keresztüli injekció a legtisztább és legkönnyebben tesztelhető módszer.