Wat betekent het woord HttpContext in .ashx? Laten we het met je bespreken
HttpContext-klasse: Bevat alle HTTP-specifieke informatie over individuele HTTP-verzoeken.
In elke fase van de verwerkingsverwerkings-uitvoeringsketen van verzoeken is er een object dat tussen elk object wordt overgelaten, dat wil zeggen, de contextinformatie van het verzoek wordt opgeslagen, namelijk het HttpContext-object. De HttpContext bevat alle informatie ASP.NET één enkel verzoek dat verwerkt moet worden. Wanneer het mechanisme voor de request handling is opgezet, wordt de HttpContext-klasse geïnstantieerd met een HttpRuntime-object, dat vervolgens door verschillende fasen van de request-levensduur gaat
Introductie tot HttpContext: Bewaar data voor één enkele gebruiker, één verzoek, en de data wordt alleen bewaard gedurende de duur van dat verzoek. wordt gebruikt om de waarden te onderhouden die tussen verschillende HttpModules en HttpHandlers moeten worden doorgegeven. Het kan ook worden gebruikt om de juiste informatie voor een volledig verzoek te bewaren.
De eigenschap Current is een nuttig statisch lid dat het momenteel gevraagde HttpContex-object teruggeeft. Items zijn hashtabellen die gegevens delen tussen de modules en handlers die betrokken zijn bij het verwerken van verzoeken. Elke aangepaste module of handler kan zijn eigen informatie toevoegen aan het gevraagde HttpContext-object, en de informatie die in de Items is opgeslagen wordt uiteindelijk door de pagina gebruikt, maar deze informatie kan alleen worden benaderd tijdens de uitvoering van het verzoek HttpContext Definitie: Bevat alle HTTP-specifieke informatie over individuele HTTP-verzoeken.
In feite staan het HTTP-verzoek en alle teruggestuurde informatie erin.
HttpContext komt van System.Runtime.Remoting.Messaging.CallContext.HostContext. Deze HostContext-definitie is om de hostcontext te krijgen of in te stellen die aan de huidige thread is gekoppeld (zodat de HttpContext alleen gebruikt kan worden in de thread van het huidige verzoek). )
HttpContext wordt eigenlijk opgeslagen in de eigenschap CallContext.HostContext.Als je nog steeds nieuwsgierig bent naar HostContext, kun je het zelf zien met Reflector.exe, ik wil geen code meer posten, want sommige types en methoden zijn niet openbaar.
HttpContext.Current.Items kan worden gebruikt bij het delen van gegevens tussen HttpModule en HTTPHandler, omdat elk gebruikersverzoek via de HTTP runtime-pijplijn HttpModule, HTTPHandler, gaat. Wanneer je de IHttpMoudle-methode implementeert om informatie via HttpMoudle aan het gebruikersverzoek door te geven. Je kunt HttpContext.Current.Items gebruiken om data over te dragen in verschillende verzoekpagina's en verschillende HttpModules, maar zodra het verzoek eindigt en de data is geplaatst, gaat de data in deze collectie vanzelf verloren.
Bijvoorbeeld, elke keer dat we een verzoek doen, willen we hetzelfde DbContext-contextobject in ef gebruiken, en de code is als volgt:
|