Sobes.tech
Junior — Middle

In quali modi è possibile implementare l'iniezione delle dipendenze nei controller dell'applicazione?

sobes.tech AI

Risposta dell'AI

L'iniezione delle dipendenze (Dependency Injection, DI) nei controller di un'applicazione in C# può essere implementata in diversi modi:

  1. Attraverso il costruttore — il metodo più comune e raccomandato. Le dipendenze vengono passate tramite i parametri del costruttore del controller.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Utilizzo di _service
        return View();
    }
}
  1. Attraverso le proprietà (Property Injection) — le dipendenze vengono impostate tramite le proprietà del controller. È meno preferibile, poiché le dipendenze potrebbero non essere inizializzate in tempo.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Attraverso i metodi (Method Injection) — le dipendenze vengono passate come parametri ai metodi del controller.
public IActionResult Index([FromServices] IService service)
{
    // Utilizzo di service
    return View();
}

In ASP.NET Core, il contenitore DI integrato supporta tutti questi metodi, ma l'iniezione tramite il costruttore è la più pulita e comoda per i test.