Sobes.tech
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:

  1. 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();
    }
}
  1. 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; }
}
  1. 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.