Dependency Injection

Dependency injection ile kod içerisinde bulunan bağımlılıkları azaltmak, esnek yapılar oluşturmak ve test edilebilir kod yazmak için yardımcı olur. Geliştirilen uygulamanın bakımını kolaylaştırır, kod okunurluğunu artırır.  ASP.NET Core, yerleşik IoC kapsayıcısını kullanarak bağımlılık sınıflarının nesnelerini enjekte eder. Kullanımı oldukça basittir.
Aşağıda görüldüğü gibi IProductService örneğini inceleyelim.



Startup.cs sınıfında bulunan ConfigureServices içerisine ekleyelim. Aşağıdaki görüntüde, AddSingleton yöntemi ile IProductService sınıfı tanımlandı.

Singleton: Uygulama çalışmaya başladığından itibaren tek bir instance olarak çalışır.

Transient: İlgili servis her kullanıldığında yeni bir instance oluşturur.

Scoped: İstek bazlı instance oluşturur ve aynı istekte çalışmaya devam eder. Taki yeni bir istek gelene kadar.



IProductService örneğini controller da bulunan ProductController daki Constructor’da tanımladık. Uygulama ayağa kalktığında ProductController üzerinde IProductService otomatik olarak oluşturur.