Junior — Middle
როგორ შეიძლება განახორციელოთ დამოკიდებულებების შეყვანა აპლიკაციის კონტროლერებში?
sobes.tech AI
პასუხი AI-სგან
C# პროგრამაში კონტროლერებში დამოკიდებულების შეყვანა (Dependency Injection, DI) შეიძლება განხორციელდეს რამდენიმე გზით:
- კონსტრუქტორის მეშვეობით — ყველაზე გავრცელებული და რეკომენდებული მეთოდი. დამოკიდებულებები გადაეცემა კონტროლერის კონსტრუქტორის პარამეტრებით.
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 კონტეინერი მხარს უჭერს ყველა ამ მეთოდს, მაგრამ კონსტრუქტორული ინექცია ყველაზე სუფთა და ტესტირებადი მეთოდია.