.ashx'te HttpContext kelimesi ne anlama geliyor? Bunu seninle konuşalım
HttpContext sınıfı: Bireysel HTTP istekleriyle ilgili tüm HTTP özel bilgileri kapsüller.
İşleme isteği yürütme zincirinin her aşamasında, her nesne arasında geçen bir nesne vardır; yani isteğin bağlam bilgisi saklanır ve bu HttpContext nesnesidir. HttpContext, işlenmesi gereken tek bir istek ASP.NET tüm bilgileri kapsar. İstek işleme mekanizması kurulduğunda, HttpContext sınıfı bir HttpRuntime nesnesi ile oluşturulur ve bu nesne istek ömrünün çeşitli aşamalarından geçer
HttpBağlam'a Giriş: Tek bir kullanıcı, tek bir istek için veri sakla ve veri sadece o isteğin süresi boyunca korunur. farklı HttpModüller ve HttpHandler'lar arasında aktarılması gereken değerleri korumak için sağlanır. Ayrıca tam bir talep için uygun bilgileri korumak amacıyla da kullanılabilir.
Güncel özellik, şu anda istenen HttpContex nesnesini döndüren faydalı bir statik üyedir. Öğeler, modüller ve istek işleme görevlisi olan yöneticiler arasında veri paylaşan hash tablolarıdır. Her özel modül veya işleyici, istenen HttpContext nesnesine kendi bilgilerini ekleyebilir ve Öğelerde saklanan bilgiler sonunda sayfa tarafından kullanılır, ancak bu bilgilere yalnızca isteğin yürütülmesi sırasında erişilebilir HttpBağlam Tanım: Bireysel HTTP isteği hakkında tüm HTTP-spesifik bilgileri kapsüller.
Aslında, Http talebi ve geri dönen tüm bilgiler içinde.
HttpContext, System.Runtime.Remoting.Messaging.CallContext.HostContext adresinden gelir. Bu HostContext tanımı, mevcut iş parçacığına bağlı ana bilgisayar bağlamını almak veya ayarlamak için kullanılır (yani HttpContext yalnızca mevcut isteğin iş parçacığında kullanılabilir). )
HttpContext aslında CallContext.HostContext özelliğinde saklanıyorHostContext hakkında hâlâ merak ediyorsanız, Reflector.exe ile kendiniz görebilirsiniz, daha fazla kod paylaşmak istemiyorum, çünkü bazı türler ve yöntemler halka açık değil.
HttpContext.Current.Items, HttpModule ile HTTPHandler arasında veri paylaşımı sırasında kullanılabilir, çünkü her kullanıcı talebi HTTP çalışma zamanı boru hattı HttpModule, HTTPHandler üzerinden geçer. IHttpMoudle yöntemini uyguladığınızda, kullanıcı isteğine HttpMoudle üzerinden bilgi ilettiğinizde. Farklı istek sayfalarında ve farklı HttpModule'lerde veri aktarmak için HttpContext.Current.Items kullanabilirsiniz, ancak istek sona erdiğinde ve veri yayınlandıktan sonra, bu koleksiyondaki veriler kendi başına kaybolur.
Örneğin, her istek yaptığımızda, ef'de aynı DbContext bağlam nesnesini kullanmak istiyoruz ve kod şöyledir:
|