J'utilise l'application C # .NET 2.0 Windows.
et j'utilise app.config pour mes paramètres d'application. P>
mais la modification des appsettes ne reflétait pas l'exécution, il a besoin d'une application être redémarré. p>
Comment puis-je l'éviter. P>
Voici mon extrait de code Je lisais et écrivez les paramètres de l'application. P>
Je lis Le réglage comme celui-ci p> Je mette à jour la valeur comme celle-ci où le nœud est le nœud de configuration / appsettings actuels p>
4 Réponses :
Vous pouvez essayer d'appeler pour actualiser la section AppSettings du fichier à partir du disque. Une fois qu'ils ont été actualisés, vous devriez être capable de lire les nouvelles valeurs. P> Je viens de tester cela et cela fonctionne effectivement. P> P>
Il est intéressant de noter que cela ne semble pas rafraîchir la valeur récupérée via ConfigurationManager.appssets ["mysetting"].
n'utilisez pas ConfigurationManager pour lire les paramètres, utilisez plutôt:
System.Configuration.ConfigurationManager.OpenExeConfiguration(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile).AppSettings.Settings["value"];
Oui cela peut aussi possible, mais ce n'est probablement pas le moyen le plus efficace de le faire.
Ici vous utilisez également ConfigurationManager aussi.
Alternativement, vous pouvez créer des «options» singleton pour contenir des paramètres de votre application et effectuer votre lecture / écrit pour vous. Une fois chargé, la modification du .config ne nécessite pas de rechargement, vous définissez simplement une propriété sur le singleton et appelez votre méthode .Save (). P>
La version "Runtime" de vos paramètres est dans le singleton, il n'est pas nécessaire de lire du disque. P>
ConfigurationManager.RefreshSection("appSettings"); works!!But be careful that if we are in debug mode, the configuration file can be called xxxxx.vshost.exe.config, where xxxxx is your project name.