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