.NET Core Dependency Injection ile HttpContext Kullanımı

Gürkan Şafak
Bimar Teknoloji Blog
2 min readApr 15, 2022

.Net Framework 4.x ile yapılandırılmış bir WebForm uygulamasında HttpContext sınıfına doğrudan System.Web namespace’i üzerinden erişilebiliyor. Fakat aynı kullanımı .net core projelerinde sağlayamıyoruz. Legacy uygulamalarınızı .net core’a migrate ederken bu kullanımı desteklemeniz gerekecektir. Bu yazıda .net core ile HttpContext kullanımını açıklamaya çalışacağım.

HttpContext sınıfını kullanabilmek için içinde bulunduğumuz sınıfa System.Web namespace’ini eklememiz yeterlidir, sonrasında aşağıdaki 2 satır ile belirlediğiniz bir “key” üzerinden HttpContext’e değer ekleme ve okuma işlemi yapılabiliyor.

using System.Web;

HttpContext.Current.Items.Add(“ContextUserId”, userId)

HttpContext.Current.Items[“ContextUserId”]

.Net Core üzerinde ise bu sınıfın kullanımı için bir interface olan IHttpContextAccesor ile .net core projenizdeki startup.cs sınıfı içinden bir DI (Dependency Injection) mekanizması işletmeniz gerekiyor. Startup sınıfı içinde ilgili interface’i register ettiğinizde, sonrasında herhangi bir sınıf içinde contructor injection yöntemi ile ilgili interface’in metotlarına ulaşabiliyorsunuz.

Öncelikle .net core projenizdeki Startup.cs içerisine şu kodu ekleyerek IHttpContextAccesor interface’ini register edelim.

Sonra herhangi bir sınıf içerisinde contructor base injection ile ilgili httpContext nesnesine erişebileceğiz.

DbCallController içerisindeki contructor ile private bir değişkene IHttpContextAccesor tipinde bir atama yaptık. Sonrasında bu değişken üzerinden Get metodu içerisinde HttpContext sınıfına erişebildik.

Startup.cs içerinde yaptığımız register işlemi bu sınıf içerisinde HttpContext’e erişmemizi sağladı.

Umarım HttpContext’i basic seviyede .net core üzerinden kullanacaklar için faydalı bir yazı olmuştur.

Kaynaklar:

--

--