Daha önce .net core nedir diye kısaca bahsetmiştik. Bugün kü yazımızda ise Asp.Net Core Dependency Injection konusuna bakacağız. Ve defalt olarak gelen built-in Dependency Injection Containerindaki yapılara bakacağız.

Şimdilik olayı daha iyi anlayabilmek için örnek bir proje üzerinde anlatmaya çalışalım. Öncelikle örnek projeyi oluşturmak için makinenizde .net core SDK 2.2 ve Visual Studio 2017 veya üstü yüklü olmalıdır.

Örnek Proje

Aşağıdaki gibi Asp.Net Core’da Web Api olarak yazılmış bir projemiz olsun ve projemiz bize öğrenci objesi üstünde işlemler yapıp sonuç döndürsün. Proje içerisinde Repository ve Service katmanları için kullandığımız interface’leri container’a register edelim ve kullanalım. İlk olarak domain objemizi aşağıdaki gibi yaratalım.

Sonrasında yukarıda oluşturduğumuz domain model için repsoitory inteface ve sınıfını oluşturalım.

Yukarıda oluşturduğumuz IStudentRepository interface’i aşağıda tanımlayacağımız StudentService sınıfına constructer-injected parameter olarak vereceğiz. 

Yukarıda kullandığımız repository ve service objelerini container’a implementasyonlarını belirterek register etmemiz gerekiyor. Bunu için aşağıdaki gibi proje solution’ında bulunan Startup.cs sınıfından faydalanacağız. Startup.cs proje ilk run edildiğinde çalışan kod satırlarının bulunduğu sınıftır. Bizde proje ilk run edildiğinde ilgili kullanılan bağımlılıkları register edeceğiz. Startup.cs de bulunan ConfigureServices adlı metot register işlemlerini yapmak için default gelen bir metottur. Aşağıdaki gibi tanımlamalarımızı yapalım.

Yukarıda görüldüğü üzre IStudentRepository ve IStudentService interface’lerini implementasyonlarını belirterek AddScoped metodunu kullanarak register ettik.

Controller Tarafında Kullanma

Son adım olarak register ettiğimiz bu service’leri kullanmak kaldı. Aşağıdaki gibi StudentController içerisinde container’da register edilen instance’ları kullanarak geriye StudentList return edelim.

Asp.Net Core için Dependency Injection kullanım örneğimiz bu kadardı. Yukarıdaki end-point’e call yaparak geriye İsmail ve Ahmet Öğrencilerinin bulunduğu array’i return ettiğini göreceğiz.

Umarım faydalı olmuştur.Bir sonraki yazıda görüşmek üzere esen kalın.

kaynak kodu

Yararlanılan kaynaklar