Junior — Middle
Ilovadagi nazoratchilarga bog'liqliklarni qanday qilib joriy etish mumkin?
sobes.tech AI
AIdan javob
C# dasturidagi ilovalar uchun controllerlarga bog'liqlikni injektsiya qilish (Dependency Injection, DI) bir nechta usullar bilan amalga oshirilishi mumkin:
- Konstruktor orqali — eng keng tarqalgan va tavsiya etilgan usul. Bog'liqliklar controller konstruktorining parametrlar orqali o'tkaziladi.
public class MyController : Controller
{
private readonly IService _service;
public MyController(IService service)
{
_service = service;
}
public IActionResult Index()
{
// _service dan foydalanish
return View();
}
}
- Xususiyatlar orqali (Property Injection) — bog'liqliklar controller xususiyatlari orqali o'rnatiladi. Kamroq tavsiya etiladi, chunki bog'liqliklar vaqti kelib to'g'ri o'rnatilmasligi mumkin.
public class MyController : Controller
{
[Inject]
public IService Service { get; set; }
}
- Metodlar orqali (Method Injection) — bog'liqliklar controller metodlariga parametr sifatida o'tkaziladi.
public IActionResult Index([FromServices] IService service)
{
// service dan foydalanish
return View();
}
ASP.NET Core'da, ichki DI konteyneri bu usullarning hammasini qo'llab-quvvatlaydi, ammo konstruktor orqali injektsiya qilish eng toza va test qilish uchun qulay hisoblanadi.