Junior — Middle
Ինչպես կարելի է իրականացնել կախվածությունների ներդրումը ծրագրի վերահսկիչներում?
sobes.tech AI
Պատասխան AI-ից
Անհրաժեշտությունների մուտքագրումը (Dependency Injection, DI) C# հավելվածի վերահսկիչներում կարող է իրականացվել մի քանի տարբեր եղանակներով՝
- Կոնստրուկտորով — ամենատարածված և խորհուրդ տրված եղանակը։ Անհրաժեշտությունները փոխանցվում են վերահսկիչի կոնստրուկտորի պարամետրերով։
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// Օգտագործում _service
return View();
}
}
- Արժեքների միջոցով (Property Injection) — անհրաժեշտությունները սահմանվում են վերահսկիչի հատկությունների միջոցով։ Ավելի քիչ նախընտրելի, քանի որ անհրաժեշտությունները կարող են չլինել ժամանակին սկզբնավորած։
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Մեթոդների միջոցով (Method Injection) — անհրաժեշտությունները փոխանցվում են որպես պարամետրեր վերահսկիչի մեթոդներին։
public IActionResult Index([FromServices] IService service)
{
// Օգտագործում service
return View();
}
ASP.NET Core-ի ներքին DI կոնտեյները աջակցում է բոլոր այս եղանակներին, բայց կոնստրուկտորով մուտքագրումը առավել մաքուր և թեստավորման համար հարմար է։