Junior — Middle
Na koje načine može da se implementira ubrizgavanje zavisnosti u kontrolere aplikacije?
sobes.tech АИ
Одговор од АИ
Уметање зависности (Dependency Injection, DI) у контролерима апликације у C# може се реализовати на више начина:
- Преко конструктора — најчешћи и препоручени начин. Зависности се преносе кроз параметре конструктора контролера.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Коришћење _service
return View();
}
}
- Преко својстава (Property Injection) — зависности се постављају преко својстава контролера. Мање је препоручљиво, јер зависности могу бити неиницијализоване у време коришћења.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Преко метода (Method Injection) — зависности се преносе као параметри метода контролера.
public IActionResult Index([FromServices] IService service)
{
// Коришћење service
return View();
}
У ASP.NET Core, уграђени DI контејнер подржава све ове начине, али најчистији и најпогоднији за тестирање је уметање кроз конструктор.