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