Hva betyr ordet HttpContext i .ashx? La oss snakke om det med deg
HttpContext-klassen: Kapsler inn all HTTP-spesifikk informasjon om individuelle HTTP-forespørsler.
I hvert trinn i behandlingsforespørselens kjørekjede er det et objekt som passerer mellom hvert objekt, det vil si at kontekstinformasjonen til forespørselen lagres, som er HttpContext-objektet. HttpContext kapsler inn all informasjon ASP.NET en enkelt forespørsel som skal behandles. Når forespørselshåndteringsmekanismen er etablert, instansieres HttpContext-klassen med et HttpRuntime-objekt, som deretter går gjennom ulike stadier i forespørselens levetid
Introduksjon til HttpContext: Oppretthold data for én bruker, en enkelt forespørsel, og dataene lagres kun så lenge forespørselen varer. er gitt for å opprettholde verdiene som må sendes mellom ulike HttpModules og HttpHandlers. Den kan også brukes til å opprettholde riktig informasjon for en fullstendig forespørsel.
Current-egenskapen er et nyttig statisk medlem som returnerer det forespurte HttpContex-objektet. Elementene er hashtabeller som deler data mellom modulene og håndtererne som er involvert i behandlingen av forespørsler. Hver egendefinert modul eller handler kan legge til sin egen informasjon i det forespurte HttpContext-objektet, og informasjonen som er lagret i elementene brukes til slutt av siden, men denne informasjonen kan kun nås under kjøringen av forespørselen HttpContext Definisjon: Kapsler inn all HTTP-spesifikk informasjon om individuelle HTTP-forespørsler.
Faktisk er Http-forespørselen og all informasjonen som returneres i den.
HttpContext kommer fra System.Runtime.Remoting.Messaging.CallContext.HostContext. Denne HostContext-definisjonen er å hente eller sette vertskonteksten knyttet til den nåværende tråden (slik at HttpContext kun kan brukes i tråden til den nåværende forespørselen). )
HttpContext lagres faktisk i egenskapen CallContext.HostContext.Hvis du fortsatt er nysgjerrig på HostContext, kan du se det selv med Reflector.exe, jeg vil ikke poste mer kode, fordi noen typer og metoder ikke er offentlige.
HttpContext.Current.Items kan brukes når data deles mellom HttpModule og HTTPHandler, fordi hver brukerforespørsel går gjennom HTTP-kjøretidspipelinen HttpModule, HTTPHandler. Når du implementerer IHttpMoudle-metoden for å sende informasjon til brukerforespørselen via HttpMoudle. Du kan bruke HttpContext.Current.Items til å overføre data i forskjellige forespørselssider og forskjellige HttpModules, men når forespørselen avsluttes og dataene er lagt ut, vil dataene i denne samlingen gå tapt av seg selv.
For eksempel, hver gang vi sender en forespørsel, vil vi bruke det samme DbContext-kontekstobjektet i ef, og koden er som følger:
|