Variable globale via le fichier web.config

Soyez le premier à donner votre avis sur cette source.

Snippet vu 29 783 fois - Téléchargée 26 fois

Contenu du snippet

Dans beaucoup de cas, vous aimeriez pouvoir définir une variable une bonne fois pour toutes genre le nom de votre site ou une la chaine de connexion à une base.

Le fichier web.config permet beaucoup de chose, entre autre il peut vous permettre de définir une variable pour toute votre application ou pour toute la portée du fichier web.config.
Nous allons donc utiliser ce fichier pour définir une variable que j'ecris simple : le nom de votre site :P

Source / Exemple :


'Dans le fichier web.config

<configuration>

  <system.web>
...
  </system.web>

  <appSettings>
  
	<!-- Nom de notre site :P -->
	<add key="NomSite" value="Un super Site :P"/>
...

  </appSettings>  
  
  
</configuration>

' dans le code
dim NomSite as string = ConfigurationSettings.AppSettings("NomSite")

Conclusion :


Il faut faire attention car ConfigurationSettings.AppSettings("...") retourne un string, donc il faut penser à faire les conversions si vous voulez le passez en integer ou en boolean

Il faut également faire attention à la casse, surtout dans le fichier web.config car si celui ci comporte une erreur c'est toute les pages de votre site qui auront une erreur.

Merci de me laisser votre commentaire :)

A voir également

Ajouter un commentaire

Commentaires

cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
Pas mal pour un début d'approche du Web.Config. Ce principe peut servir à stocker les chaines de connexion pour la base de données.

Pour ceux qui cherchent des infos sur le web.config, allez ici :
- http://www.asp-php.net/tutorial/asp.net/webconfig.php

F___
cs_RayBan
Messages postés
17
Date d'inscription
jeudi 24 janvier 2002
Statut
Membre
Dernière intervention
9 juin 2004
-
Le fichier webconfig ne sert pas à stocker des variables global. Il faut le faire dans le fichier global.asax. C'est pour cette raison que l'on trouve les différents événements relatifs au démarrage de session et démarrage d'application (et fin de session et fin d'application).

Le fichier web.config, est utilisé uniquement pour les paramètres de l'application, tel que des informations sur l'encodage, la sécurité, etc.

La déclaration de variable dans le fichier global.asax est beaucoup plus propre et réaliste, car les variables peuvent être déclaré et ensuite initailiser dans les différents événements de démarrage de l'application ou de la session...

Ray

Do more with less... Simply .NET...
cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
Je ne suis pas tout à fait d'accord sur ce qui est dit ici.
En effet, le titre n'est pas le plus adéquat, ce n'est pas vraiment une variable globale, mais une clé.

En fait pour mieu expliquer l'utilisation de cette partie de la définition du Web.Config, imaginons une chaine de connexion. Sur le développement on a une base X et la production la base Y.
Il faut donc une définition différente suivant les plateforme sur lesquelles le projet va être placé.
De plus il ne faut pas devoir recompiler à chaque fois que l'on veut modifier cette chaine de connexion, or pour le global.asax, ce n'est pas ce fichier la qui est à modifier mais le global.asax.vb qui est lui compilé.

F___
cmd_raz
Messages postés
12
Date d'inscription
mercredi 29 octobre 2003
Statut
Membre
Dernière intervention
11 mai 2007
-
depuis la version 2005:

dans le code on rentre
Dim CheminDb As String = System.Configuration.ConfigurationManager.AppSettings("CheminDb")

c'est clair que c'est tres utile pour les deploiements sur des plateforme differente :)
Chimon2005
Messages postés
7
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
27 mai 2008
-
Salut !
Est-il possible de faire passer une définition dans ce web.config pour une constante?

Je m'explique: j'ai 3 types d'objets identifiés par 3 id susceptibles de changer (donc à mettre en config, comme expliqué ici), et je crée ma page en fonction de ces id.
Je passe donc par un switch, et naïvement, j'ai codé:

int type_1_id = Convert.ToInt32(ConfigurationManager.AppSettings["id_type_1"]);
...

switch(id_type_base){
case type_1_id:
...
break;
...

"Won't compile: A constant value is expected".

Pourtant, il s'agit bien d'une constante ;)

Comment faire? Merci d'avance.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.