Sobes.tech
Junior — Middle

Ինչպես կարելի է իրականացնել կախվածությունների ներդրումը ծրագրի վերահսկիչներում?

sobes.tech AI

Պատասխան AI-ից

Անհրաժեշտությունների մուտքագրումը (Dependency Injection, DI) C# հավելվածի վերահսկիչներում կարող է իրականացվել մի քանի տարբեր եղանակներով՝

  1. Կոնստրուկտորով — ամենատարածված և խորհուրդ տրված եղանակը։ Անհրաժեշտությունները փոխանցվում են վերահսկիչի կոնստրուկտորի պարամետրերով։
public class MyController : Controller
{
    private readonly IService _service;

    public MyController(IService service)
    {
        _service = service;
    }

    public IActionResult Index()
    {
        // Օգտագործում _service
        return View();
    }
}
  1. Արժեքների միջոցով (Property Injection) — անհրաժեշտությունները սահմանվում են վերահսկիչի հատկությունների միջոցով։ Ավելի քիչ նախընտրելի, քանի որ անհրաժեշտությունները կարող են չլինել ժամանակին սկզբնավորած։
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Մեթոդների միջոցով (Method Injection) — անհրաժեշտությունները փոխանցվում են որպես պարամետրեր վերահսկիչի մեթոդներին։
public IActionResult Index([FromServices] IService service)
{
    // Օգտագործում service
    return View();
}

ASP.NET Core-ի ներքին DI կոնտեյները աջակցում է բոլոր այս եղանակներին, բայց կոնստրուկտորով մուտքագրումը առավել մաքուր և թեստավորման համար հարմար է։