Junior — Middle
По какви начини може да се реализира внедряването на зависимости в контролерите на приложението?
sobes.tech AI
Отговор от AI
Внедряването на зависимости (Dependency Injection, DI) в контролерите на приложение на C# може да се реализира по няколко начина:
- Чрез конструктор — най-разпространеният и препоръчителен начин. Dependencies се предават чрез параметрите на конструктора на контролера.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Използване на _service
return View();
}
}
- Чрез свойства (Property Injection) — dependencies се задават чрез свойствата на контролера. По-малко предпочитано, тъй като dependencies може да не са инициализирани навреме.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Чрез методи (Method Injection) — dependencies се предават като параметри на методите на контролера.
public IActionResult Index([FromServices] IService service)
{
// Използване на service
return View();
}
В ASP.NET Core вграденият DI контейнер поддържа всички тези начини, но инжектирането чрез конструктор е най-чистият и удобен за тестване.