Sobes.tech
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:

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