Sobes.tech
Junior — Middle

Na koje načine može da se implementira ubrizgavanje zavisnosti u kontrolere aplikacije?

sobes.tech АИ

Одговор од АИ

Уметање зависности (Dependency Injection, DI) у контролерима апликације у C# може се реализовати на више начина:

  1. Преко конструктора — најчешћи и препоручени начин. Зависности се преносе кроз параметре конструктора контролера.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Коришћење _service
        return View();
    }
}
  1. Преко својстава (Property Injection) — зависности се постављају преко својстава контролера. Мање је препоручљиво, јер зависности могу бити неиницијализоване у време коришћења.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Преко метода (Method Injection) — зависности се преносе као параметри метода контролера.
public IActionResult Index([FromServices] IService service)
{
    // Коришћење service
    return View();
}

У ASP.NET Core, уграђени DI контејнер подржава све ове начине, али најчистији и најпогоднији за тестирање је уметање кроз конструктор.