2009-02-17 8 views
13

Puis-je appeler HttpContext.Current à partir d'une classe statique et d'une méthode?HttpContext.Current accédé dans les classes statiques

Je souhaite stocker une valeur par utilisateur, mais je souhaite pouvoir y accéder de manière statique.

par exemple. Est-ce que ça va marcher?

public static class StaticClass 
{ 

    public static string SomeThing 
    { 
     get { return HttpContext.Current.Items["SomeItem"].ToString(); } 
    } 

} 

Répondre

13

Oui des thats une façon dont il est utile, bien sûr le fil sur lequel il est appelé doit être actuellement en train de traiter une demande pour le rendre utile.

5

Pourquoi ne pas essayer?

Oui, il est tout à fait possible (mais est pas nécessairement une bonne conception), rappelez-vous juste de référencer System.Web.dll dans votre projet et vérifier HttpContext.Current pour null au cas où vous allez finir par courir dans un environnement non-ASP.NET.

5

Oui, c'est une méthode statique, donc vous pouvez l'appeler où vous voulez. Comme Anthony le dit, le contexte "actuel" dépend du thread appelant, vous devez donc vous assurer que vous utilisez le bon thread.

+0

La classe et les propriétés ne seront appelées qu'à partir des pages Web. Donc, je suppose que je vais toujours obtenir le contexte actuel du fil correct. Est-ce vrai ou ai-je oublié quelque chose? –

+2

Cela devrait aller bien tant que vous ne faites pas de thread génial (par exemple en utilisant le pool de threads dans vos pages Web). –

+0

Cool, non, je ne le suis pas. Merci Jon –

Questions connexes