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 контейнери бул бардык ыкмаларды колдойт, бирок куруучу аркылуу киргизүү эң таза жана тестке ылайыктуу.