Sobes.tech
Junior — Middle

როგორ შეიძლება განახორციელოთ დამოკიდებულებების შეყვანა აპლიკაციის კონტროლერებში?

sobes.tech AI

პასუხი AI-სგან

C# პროგრამაში კონტროლერებში დამოკიდებულების შეყვანა (Dependency Injection, DI) შეიძლება განხორციელდეს რამდენიმე გზით:

  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 კონტეინერი მხარს უჭერს ყველა ამ მეთოდს, მაგრამ კონსტრუქტორული ინექცია ყველაზე სუფთა და ტესტირებადი მეთოდია.