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

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