Junior — Middle
Kā var īstenot atkarību injekciju lietojumprogrammas kontrolieros?
sobes.tech AI
Atbilde no AI
Atkarības injekcija (Dependency Injection, DI) C# lietojumprogrammas kontrolieros var tikt īstenota vairākos veidos:
- Caur konstruktoru — visbiežāk un ieteicamākais veids. Atkarības tiek nodotas caur kontroliera konstruktoru parametrus.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Izmanto _service
return View();
}
}
- Caur īpašībām (Property Injection) — atkarības tiek iestatītas caur kontroliera īpašībām. Mazāk ieteicams, jo atkarības var nebūt laicīgi inicializētas.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Caur metožu parametriem (Method Injection) — atkarības tiek nodotas kā parametri kontroliera metodēm.
public IActionResult Index([FromServices] IService service)
{
// Izmanto service
return View();
}
ASP.NET Core iebūvētais DI konteiners atbalsta visus šos veidus, bet konstruktoru injekcija ir tīrākā un ērtākā testēšanai.