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