Sobes.tech
Junior — Middle

¿De qué maneras se puede implementar la inyección de dependencias en los controladores de la aplicación?

sobes.tech AI

Respuesta de la IA

La inyección de dependencias (Dependency Injection, DI) en los controladores de aplicaciones en C# se puede implementar de varias maneras:

  1. A través del constructor — la forma más común y recomendada. Las dependencias se pasan a través de los parámetros del constructor del controlador.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Uso de _service
        return View();
    }
}
  1. A través de propiedades (Property Injection) — las dependencias se establecen mediante propiedades del controlador. Es menos preferido, ya que las dependencias pueden no estar inicializadas a tiempo.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. A través de métodos (Method Injection) — las dependencias se pasan como parámetros a los métodos del controlador.
public IActionResult Index([FromServices] IService service)
{
    // Uso de service
    return View();
}

En ASP.NET Core, el contenedor DI incorporado soporta todas estas formas, pero la inyección a través del constructor es la más limpia y conveniente para las pruebas.