Les variables globales c#.net
Comment puis-je définir une variable globale dans un C# une application web?
Ce que je veux faire est de définir une variable sur une page (page maître peut-être) et l'accès à cette variable à partir de n'importe quelle page.
Je veux ne pas utiliser le cache ni sessions.
Je pense que je dois utiliser mondiale.asax. Toute aide?
- Est-il une raison particulière cache/sessions ne fonctionnent pas? Techniquement, l'Application est une Session/l'objet du Cache et donc, si vous êtes en utilisant que (dans un non de manière statique) vous êtes déjà à l'aide de Sessions. Si son la session partie spécifique, qui peut être abordé avec l'App cache de niveau.
- oui, parce que j'ai besoin de stocker une grande liste, et le cache est seulement de 16 mo, donc je ne veux pas perdre cahe des ressources...
- Voulez-vous un singleton? Un objet unique qui est partagé par tous les threads de traitement de toutes les demandes? Ou voulez-vous simplement un moyen de partager des données entre une MasterPage et un ContentPage. Si c'est le tard, puis les variables globales sont certainement pas une bonne solution.
- j'ai besoin de partager des variables globales entre toutes les pages de mon projet. non seulement entre la maquette et le contenu de la page.
- 16 MO? Avez-vous une référence pour qui? Je n'ai jamais entendu parler de cette limite avant. Je sais que j'ai opérationnel utilisé des caches dans le multi-gamme gigabyte sur certains serveurs.
Vous devez vous connecter pour publier un commentaire.
Utiliser un public static de la classe et y accéder à partir de n'importe où.
utilisé comme si, à partir de la page maître ou n'importe où:
Vous n'avez pas besoin de créer une instance de la classe; en fait, vous ne pouvez pas car il est statique.
Viens de l'utiliser directement. Tous les membres à l'intérieur d'une classe statique doit également être statique. La chaîne de Préfixe n'est pas marquée statique carnew
const
est implicitement statique par nature.La classe statique peut être n'importe où dans votre projet. Il n'a pas à être une partie de la Global.asax ou une page particulière parce que c'est "global" (ou au moins aussi proche que nous pouvons obtenir de ce concept orienté objet conditions.)
Vous pouvez faire autant de classes statiques que vous le souhaitez et de les nommer ce que vous voulez.
Parfois, les programmeurs comme pour le groupe de leurs constantes en utilisant des classes statiques. Par exemple,
et d'y accéder de la sorte:
J'deuxième du jdk de réponse: tout public membre statique d'une classe de votre application peut être considérée comme une "variable globale".
Toutefois, notez que c'est un ASP.NET d'application, et en tant que tel, c'est un multi-thread contexte pour vos variables globales. Par conséquent, vous devez utiliser certaines mécanisme de verrouillage lorsque vous mettez à jour et/ou de lire les données vers/à partir de ces variables. Sinon, vous pourriez obtenir vos données dans un état corrompu.
Vous pouvez créer une classe de base dans votre application qui hérite de System.Web.L'INTERFACE utilisateur.Page.
Laissez toutes vos pages héritent de la nouvellement créée de la classe de base. Ajouter une propriété ou une variable pour votre classe de base avec propected modificateur d'accès, de sorte qu'il sera accessible à partir de toutes vos pages dans l'application.
Vous pouvez créer une variable avec un la portée de l'application
Il suffit de déclarer la variable à partir d'une classe.
par exemple, pour la variable de type string: