0 votes

Explication de la façon dont ce code utilise l'espace de noms web

HttpContext context = ((HttpApplication)sender).Context;

Dans l'exemple ci-dessus, pourquoi l'expéditeur est-il une HTTPApplication et non un HTTPContext ?

Par ailleurs, à quoi servent les supports ? Je sais qu'ils servent à la distribution, mais si vous vous débarrassez de HTTPApplication et des crochets qui l'entourent, il ne reste plus que HTTPApplication :

(sender).Context;

Pourquoi pas sender.Context ? Ou, de manière plus générale, pourquoi utiliser des parenthèses de toute façon ? Je me souviens vaguement qu'il s'agit d'une façon de faire du casting, mais je ne me souviens pas des détails.

Deuxièmement :

 string url = context.Request["url"];
 int cacheDuration = Convert.ToInt32(context.Request["cache"] ?? "0");
 string contentType = context.Request["type"];

EDIT : Je me suis rendu compte que vous savez écrire :

collection["key"] = "value";

Il s'agit d'une collection basée sur une clé et vous stockez une valeur là où il y a une clé appelée "key". Ai-je raison de penser que vous obtenez l'url lorsque la clé est "url" ?

Je sais que l'on utilise HTTPContext, mais dans l'indexeur, que signifie "url" ? C'est juste une chaîne qui dit url, même pas une vraie url. De même pour "cache" et "type". Si l'on écrit "type", comme dans la dernière ligne de code, cela renvoie-t-il le type (HTTP/HTTPS) utilisé ?

Gracias

1voto

Jon Skeet Points 692016

Il doit lancer sender a HttpApplication parce que (vraisemblablement) c'est le type réel - il est alors obtient un HttpContext par l'intermédiaire de la HttpApplication.Context propriété.

Dans ces conditions, vous faire ont besoin du plâtre, la fourchette est donc raisonnable.

Pour la deuxième partie : "url" , "cache" y "type" sont simplement les noms des paramètres de la requête (qui sont documenté proviennent des cookies, de la soumission du formulaire, des variables du serveur ou des paramètres de requête de l'URL). L'URL d'origine pourrait donc être :

http://server.com/Foo.aspx?url=someurl&cache=10&type=text/plain

... ou les valeurs peuvent provenir de cookies, etc. J'espère qu'à partir de ces informations, il sera possible de savoir où elles seront utilisées. vraiment dans ce cas :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X