Junior — Middle
De quelles manières peut-on implémenter l'injection de dépendances dans les contrôleurs de l'application?
sobes.tech IA
Réponse de l'IA
L'injection de dépendances (Dependency Injection, DI) dans les contrôleurs d'une application en C# peut être réalisée de plusieurs manières :
- Par le constructeur — la méthode la plus courante et recommandée. Les dépendances sont passées via les paramètres du constructeur du contrôleur.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Utilisation de _service
return View();
}
}
- Par propriété (Injection par propriété) — les dépendances sont définies via des propriétés du contrôleur. Moins préféré, car les dépendances peuvent ne pas être initialisées à temps.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Par méthode (Injection par méthode) — les dépendances sont passées en tant que paramètres aux méthodes du contrôleur.
public IActionResult Index([FromServices] IService service)
{
// Utilisation de service
return View();
}
Dans ASP.NET Core, le conteneur DI intégré supporte toutes ces méthodes, mais l'injection via le constructeur est la plus propre et pratique pour les tests.