Sobes.tech
Junior — Middle

De que formas pode implementar a injeção de dependências nos controladores da aplicação?

sobes.tech IA

Resposta da IA

A injeção de dependências (Dependency Injection, DI) nos controladores de uma aplicação em C# pode ser implementada de várias formas:

  1. Através do construtor — a forma mais comum e recomendada. As dependências são passadas através dos parâmetros do construtor do controlador.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Uso de _service
        return View();
    }
}
  1. Através de propriedades (Injeção por propriedade) — as dependências são definidas através de propriedades do controlador. É menos preferido, pois as dependências podem não estar inicializadas a tempo.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Através de métodos (Injeção por método) — as dependências são passadas como parâmetros aos métodos do controlador.
public IActionResult Index([FromServices] IService service)
{
    // Uso de service
    return View();
}

No ASP.NET Core, o contêiner DI embutido suporta todas essas formas, mas a injeção pelo construtor é a mais limpa e conveniente para testes.