Какво означава думата HttpContext в .ashx? Нека поговорим с теб
Клас HttpContext: Капсулира цялата специфична за HTTP информация за отделни HTTP заявки.
Във всеки етап от веригата на изпълнение на заявки за обработка има обект, който преминава между всеки обект, тоест се съхранява контекстната информация на заявката, която е обектът HttpContext. HttpContext капсулира цялата информация ASP.NET една заявка, която трябва да бъде обработена. Когато механизмът за обработка на заявки е установен, класът HttpContext се инстанцира с обект HttpRuntime, който преминава през различни етапи от живота на заявката
Въведение в HttpContext: Поддържайте данни за един потребител, една заявка, като данните се поддържат само за продължителността на тази заявка. се предоставя за поддържане на стойностите, които трябва да се предават между различни HttpModules и HttpHandlers. Може също така да се използва за поддържане на подходяща информация за пълна заявка.
Свойството Current е полезен статичен член, който връща текущо поискания обект HttpContex. Елементите са хеш таблици, които споделят данни между модулите и обработващите устройства, участващи в обработката на заявки. Всеки персонализиран модул или обработвач може да добави собствена информация към искания HttpContext обект, а информацията, съхранена в Items, в крайна сметка се използва от страницата, но тази информация може да бъде достъпена само по време на изпълнението на заявката HttpContext Дефиниция: Капсулира цялата специфична за HTTP информация за отделни HTTP заявки.
Всъщност, Http заявката и цялата върната информация са в нея.
HttpContext идва от System.Runtime.Remoting.Messaging.CallContext.HostContext. Тази дефиниция на HostContext е за получаване или задаване на хост контекста, свързан с текущата нишка (така че HttpContext може да се използва само в нишката на текущата заявка). )
HttpContext всъщност се съхранява в свойството CallContext.HostContextАко все още сте любопитни за HostContext, можете да го видите сами с Reflector.exe, не искам да публикувам повече код, защото някои видове и методи не са публични.
HttpContext.Current.Items могат да се използват при споделяне на данни между HttpModule и HTTPHandler, тъй като всяка потребителска заявка минава през HTTP runtime pipeline HttpModule, HTTPHandler. Когато имплементирате метода IHttpMoudle за предаване на информация към потребителската заявка чрез HttpMoudle. Можете да използвате HttpContext.Current.Items, за да прехвърляте данни в различни страници за заявки и различни HttpModules, но след като заявката приключи и данните бъдат публикувани, данните в тази колекция ще бъдат изгубени сами.
Например, всеки път, когато правим заявка, искаме да използваме същия DbContext контекстен обект в ef, а кодът е следният:
|