none
配置文件问题 RRS feed

  • 问题

  • 对一个winform程序,修改了里面的app.config
    需要重启程序,里面的配置才能生效,有没有办法不重启程序就生效的?
    2009年12月1日 0:52

答案

  • 有,使用ConfigurationManager,在要读取配置之前Refresh一下.
    • 已标记为答案 male110 2009年12月1日 3:07
    2009年12月1日 2:02
  • 你好!

    是可以的,你使用 FileSystemWatcher 监视配置文件,当文件发生变更时重新从配置文件中读取信息。配置文件似乎是缓存的,你可能需要使用 XmlReader, XmlDocument 这样的方式来获取。另外使用定时器定时扫瞄也能达到这个效果。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年12月1日 3:07
    2009年12月1日 2:06
    版主
  • 的确是不管用哈~

    你可以用
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
    来获取配置信息,config设置为局部变量,读取配置前都 Open 一下.
    2009年12月1日 3:38

全部回复

  • 你好!
         配置文件里保存的是一些应用程序的配置信息,本身就是一个XML文件,所以你修改了以后,只要保存这个文件就可以了!但是你不启动应用程序你看不到效果啊!
    周雪峰
    2009年12月1日 1:54
    版主
  • 因为我是服务程序,否则就要每次重启服务了。。。
    要的就是不重启生效。
    2009年12月1日 2:01
  • 有,使用ConfigurationManager,在要读取配置之前Refresh一下.
    • 已标记为答案 male110 2009年12月1日 3:07
    2009年12月1日 2:02
  • 你好!

    是可以的,你使用 FileSystemWatcher 监视配置文件,当文件发生变更时重新从配置文件中读取信息。配置文件似乎是缓存的,你可能需要使用 XmlReader, XmlDocument 这样的方式来获取。另外使用定时器定时扫瞄也能达到这个效果。

    知识改变命运,奋斗成就人生!
    • 已标记为答案 male110 2009年12月1日 3:07
    2009年12月1日 2:06
    版主
  • XmlDocument是可以的。
    Galactica说的是怎么做的?
     ConfigurationManager.RefreshSection("appSettings");
                string str = ConfigurationSettings.AppSettings["a"];
                MessageBox.Show(str);
    我这样写的好像不行呀。
    2009年12月1日 2:26
  • 晕死,直接运行有更新,
    调试没更新。
    2009年12月1日 3:07
  • 的确是不管用哈~

    你可以用
    Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
    来获取配置信息,config设置为局部变量,读取配置前都 Open 一下.
    2009年12月1日 3:38