2010-09-02 2 views
4

J'essaie d'accéder à l'état de l'application d'une classe d'utilité dans l'application Web, mais je ne suis pas sûr de la meilleure façon de le faire. J'ai cherché un membre statique mais il n'y a pas d'utilisation (je pensais quelque part dans le sens de HttpContext.Current). La meilleure solution que j'ai trouvé jusqu'ici est d'avoir un membre dans la classe d'utilité qui sera initialisé dans l'événement Application_Start du Global.asax.cs (je peux l'obtenir de cette.Application là) mais y aurait-il risque de "quelque chose" qui arrive à cette référence (je ne me soucie pas de l'application étant redémarré comme je cherche seulement une fonctionnalité de cache)?État application de l'extérieur d'une page

Répondre

7

Je pense que je l'ai eu!

HttpContext.Current.Aplication 
+0

Il fonctionne homme, acclamations. – TheGateKeeper

+0

Fonctionne pour moi aussi. Merci. @CyberDude: s'il vous plaît envisager d'en faire la réponse acceptée. – Chris

0

Essayez

System.Web.HttpRuntime 
1

Il n'y a pas moyen d'accéder à l'état d'application de l'extérieur du HTTTPContext par la conception. L'utilisation de Application_Start est la méthode préférée pour initialiser les valeurs "globales". Vous pouvez également utiliser la classe Cache dans le même but. Cache offre des fonctionnalités d'expiration de membre qui peuvent être utiles pour les données qui changent en raison d'événements tels qu'un changement de valeur de fichier ou de base de données.

+0

Oui, Cache a plus de fonctionnalités, je pourrais l'utiliser à la place. – CyberDude

0

Vous pouvez simplement créer un membre de classe statique:

public class MyGlobalCache 
{ 
    public static string SomeValue{get;set;} 
} 

Cela est stocké au niveau de l'application, ce qui signifie que vous obtenez la même fonctionnalité de l'état d'application. Le membre statique sera disponible sur toutes les couches (pages Web et non-pages Web).