¿Qué significa la palabra HttpContext en .ashx? Vamos a hablártelo contigo
Clase HttpContext: Encapsula toda la información específica de HTTP sobre solicitudes HTTP individuales.
En cada etapa de la cadena de ejecución de la solicitud de procesamiento, hay un objeto que pasa entre cada objeto, es decir, se almacena la información de contexto de la petición, que es el objeto HttpContext. El HttpContext encapsula toda la información ASP.NET una única petición a procesar. Cuando se establece el mecanismo de gestión de solicitudes, la clase HttpContext se instancia con un objeto HttpRuntime, que luego pasa por varias etapas de la vida útil de la solicitud
Introducción a HttpContext: Mantener los datos para un solo usuario, una sola solicitud, y los datos solo se mantendrán durante la duración de esa solicitud. se proporciona para mantener los valores que deben pasarse entre diferentes HttpMódulos y HttpHandlers. También puede utilizarse para mantener la información adecuada para una solicitud completa.
La propiedad Current es un miembro estático útil que devuelve el objeto HttpContex solicitado actualmente. Los elementos son tablas hash que comparten datos entre los módulos y los gestores implicados en el procesamiento de solicitudes. Cada módulo o gestor personalizado puede añadir su propia información al objeto HttpContext solicitado, y la información almacenada en los Items es finalmente utilizada por la página, pero esta información solo puede ser accedida durante la ejecución de la solicitud httpContext Definición: Encapsula toda la información específica de HTTP sobre solicitudes HTTP individuales.
De hecho, la solicitud HTTP y toda la información devuelta están en ella.
HttpContext proviene de System.Runtime.Remoting.Messaging.CallContext.HostContext. Esta definición de HostContext es para obtener o establecer el contexto de host asociado al hilo actual (por lo que el HttpContext solo puede usarse en el hilo de la solicitud actual). )
HttpContext se almacena en realidad en la propiedad CallContext.HostContextSi sigues curioso por HostContext, puedes verlo tú mismo con Reflector.exe, no quiero publicar más código, porque algunos tipos y métodos no son públicos.
HttpContext.Current.Items puede usarse al compartir datos entre HttpModule y HTTPHandler, porque cada solicitud de usuario pasa por la tubería de ejecución HTTP HttpModule, HTTPHandler. Cuando implementas el método IHttpMoudle para pasar información a la solicitud del usuario a través de HttpMoudle. Puedes usar HttpContext.Current.Items para transferir datos en diferentes páginas de solicitud y distintos HttpModules, pero una vez que la solicitud termina y los datos se publican, los datos de esta colección se perderán por sí solos.
Por ejemplo, cada vez que hacemos una petición, queremos usar el mismo objeto de contexto DbContext en ef, y el código es el siguiente:
|