Junior — Middle
Op welke manieren kan dependency injection worden geïmplementeerd in de controllers van de applicatie?
sobes.tech AI
Antwoord van AI
Dependency Injection (DI) in ASP.NET Core controllers kan op verschillende manieren worden geïmplementeerd:
- Via de constructor — de meest gebruikelijke en aanbevolen methode. Dependencies worden via de parameters van de controller's constructor doorgegeven.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Gebruik van _service
return View();
}
}
- Via eigenschappen (Property Injection) — dependencies worden via de eigenschappen van de controller ingesteld. Minder aanbevolen, omdat dependencies mogelijk niet op tijd geïnitialiseerd worden.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Via methoden (Method Injection) — dependencies worden als parameters aan de controller-methoden doorgegeven.
public IActionResult Index([FromServices] IService service)
{
// Gebruik van service
return View();
}
In ASP.NET Core ondersteunt de ingebouwde DI-container al deze methoden, maar constructor-injectie is de meest schone en testvriendelijke aanpak.