Sobes.tech
Junior — Middle

Чӣ тавр метавон дар контроллерҳои барнома такмили вобастагиро амалӣ кард?

sobes.tech AI

Ҷавоб аз AI

Внедряването на зависимости (Dependency Injection, DI) в контролерите на приложение на C# може да се реализира по няколко начина:

  1. Чрез конструктора — най-разпространеният и препоръчителен начин. Dependencies се предават чрез параметрите на конструктора на контролера.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // Използване на _service
        return View();
    }
}
  1. Чрез свойства (Property Injection) — dependencies се задават чрез свойствата на контролера. По-малко предпочитано, тъй като dependencies може да не са инициализирани навреме.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Чрез методи (Method Injection) — dependencies се предават като параметри на методите на контролера.
public IActionResult Index([FromServices] IService service)
{
    // Използване на service
    return View();
}

В ASP.NET Core вграденият DI контейнер поддържа всички тези начини, но инжектирането чрез конструктор е най-чистият и удобен за тестване.