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