Sobes.tech
Junior — Middle

Uygulama denetleyicilerine bağımlılık enjeksiyonunu nasıl gerçekleştirebilirsiniz?

sobes.tech yapay zeka

AI'dan gelen yanıt

C# uygulamalarında Controller'lara bağımlılık enjeksiyonu (Dependency Injection, DI) birkaç farklı şekilde gerçekleştirilebilir:

  1. Yapıcı (Constructor) aracılığıyla — en yaygın ve önerilen yöntemdir. Bağımlılıklar, controller'ın yapıcı parametreleri aracılığıyla geçirilir.
public class MyController : Controller
{
    private readonly IService _service;

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

    public IActionResult Index()
    {
        // _service kullanımı
        return View();
    }
}
  1. Özellikler (Property Injection) — bağımlılıklar, controller'ın özellikleri aracılığıyla ayarlanır. Daha az tercih edilir, çünkü bağımlılıklar zamanında başlatılmayabilir.
public class MyController : Controller
{
    [Inject]
    public IService Service { get; set; }
}
  1. Yöntemler (Method Injection) — bağımlılıklar, controller yöntemlerine parametre olarak geçirilir.
public IActionResult Index([FromServices] IService service)
{
    // service kullanımı
    return View();
}

ASP.NET Core'da yerleşik DI konteyneri, bu tüm yöntemleri destekler, ancak yapıcı enjeksiyonu en temiz ve testler için en uygunudur.