Sobes.tech
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:

  1. 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();
    }
}
  1. 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; }
}
  1. 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.