10
votes

Quand / comment mon application .NET utilise-t-elle son fichier app.config?

Je n'y ai jamais pensé auparavant; Mais j'ai récemment appris comment je pourrais modifier le fichier app.config pour ajouter / supprimer des écouteurs de trace (par exemple, pour rediriger toute la sortie Trace.writeline dans un fichier texte).

Mais je ne comprends pas bien comment ça marche? Quelqu'un peut-il expliquer un peu?

Je connais le code C # correspondant pour faire la même chose que la configuration (dans cet exemple) - ce code est-il généré / exécuté avant le point d'entrée de mon application?


1 commentaires

Quel aspect ne comprenez-vous pas? Lorsque le fichier se charge? Quand les écouteurs de trace sont ajoutés? Quoi exactement?


3 Réponses :


8
votes

Ce code est-il généré / exécuté avant le point d'entrée de mon application?

Pensez à un fichier de configuration comme fichier texte standard. Si votre code d'application ne lit pas et que rien ne se passe, rien ne se passera. Donc, fondamentalement, lorsque vous définissez une section dans le fichier APP.Config, votre application est dans votre application (dans le BCL ou sur la coutume) qu'à un moment donné lira, analysera et interpréter les valeurs.

Alors, considérons l'exemple d'auditeurs de traces. Lorsque vous essayez de tracer quelque chose dans votre code, la classe de trace sous-jacente utilisera le système de configuration pour vérifier les valeurs que vous avez définies dans App.config. Ce système de configuration n'étilise que le XML une seule fois et le stocke comme singleton en mémoire pour éviter les frais généraux à chaque fois. Donc, ce n'est que la première fois que vous essayez de tracer quelque chose que le fichier de configuration est analysé et sur les appels suivants, les valeurs sont directement lues à partir de la mémoire.


0 commentaires

5
votes

L'app.config Cliché est examiné par votre application chaque fois que vous le lancez.

Vous pouvez stocker l'un de vos paramètres dans vos fichiers APP.Config, ajouter ou supprimer de manière dynamique. P>

Ici vous GO ... P>

Configuration configFile = ConfigurationManager.OpenExeConfiguration(System.IO.Path.GetFileName(Application.ExecutablePath));
configFile.AppSettings.Settings(KeyName).Value = KeyValue;
configFile.Save();


0 commentaires

3
votes

Comme déjà d'autres ont expliqué. J'aimerais juste expliquer un peu plus profondément j'espère.

in .NET, votre CLR crée une limite virtuelle pour votre application. En d'autres termes, lorsque votre demande est hébergée dans CLR, elle crée une dimension virtuelle de votre application de jouer. Son appelé AppDomain ou son domaine d'application. Ceci est la scène lorsque votre application lit le fichier App.config pour toute information. Parce que parfois votre APP.Config dira à CLR quels sont les assemblages de temps d'exécution un peu, il devrait rechercher des ensembles Ex: CLR 2.0 Ceci est généralement vu si vos applications de construction dans VS2010 pour 2.0 ou première création de projet pour 4, puis changez à 2,0 cible.


0 commentaires