3 votes

Comment découvrir que les appsettings ont changé en C# ?

Existe-t-il un moyen (un événement serait la meilleure option) de signaler à mon code que les paramètres de l'application ont été modifiés ?

Exactement, j'essaie d'implémenter un service Windows dans lequel l'administrateur doit changer le comportement "en ligne" sans redémarrer le service.

Je pensais à FileSystemWatcher Mais dans cette option, je devrai coder en dur le chemin et le nom du fichier de configuration, alors peut-être y a-t-il un autre moyen de le faire ?

UPDATE

Les réponses ci-dessous suggèrent d'utiliser AppDomain.CurrentDomain.SetupInformation.ConfigurationFile mais cette option ne fonctionnera pas si j'ai un fichier de configuration externe défini comme ceci :

<configuration>
  <appSettings configSource="appsettings.config"/>
</configuration>

2voto

Mikael Östberg Points 10487

Vous pouvez utiliser le FileSystemWatcher avec le chemin de cette déclaration :

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

Pas besoin de chemins codés en dur.

0voto

Bassam Alugili Points 1958

Peut-être en utilisant une minuterie dans un thread d'arrière-plan et en vérifiant toutes les 5 secondes que la somme de contrôle du fichier de configuration a été modifiée, puis en déclenchant un événement de modification de la configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X