Junior — Middle
Kaip galima įgyvendinti priklausomybių injekciją programos valdikliuose?
sobes.tech AI
Atsakymas iš AI
Priklausomybių įvedimas (Dependency Injection, DI) C# programos kontroleriuose gali būti įgyvendintas keliais būdais:
- Per konstruktorių — dažniausiai ir rekomenduojamas būdas. Priklausomybės perduodamos per kontrolerio konstruktoriaus parametrus.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Naudojant _service
return View();
}
}
- Per savybes (Property Injection) — priklausomybės nustatomos per kontrolerio savybes. Mažiau pageidautina, nes priklausomybės gali būti ne laiku inicializuotos.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Per metodus (Method Injection) — priklausomybės perduodamos kaip parametrai kontrolerio metodams.
public IActionResult Index([FromServices] IService service)
{
// Naudojant service
return View();
}
ASP.NET Core integruotas DI konteineris palaiko visus šiuos būdus, tačiau konstruktorinė injekcija yra švariausia ir patogiausia testavimui.