关于config文件,有那么一段时间被虐的够惨,也怪自己没认真去解决问题,其实问题摆在那里永远都是问题!言归正传,记录自己对config的一些简单理解。
web项目下会有web.config文件,winform项目下会有app.config文件,今天解决问题的时候碰到了它们众多不同中的一个吧。在web程序中配置文件更改后,应用程序会自动重启一次,所以配置会自动生效。但winform程序没有这个机制,Configuration.ConfigurationManager调用配置不会自动更新。
所以需要手动实现调用配置的逻辑,代码如下:
1 public string ReadAppSetting(string key) 2 { 3 string xPath = "/configuration/appSettings//add[@key=‘"+key+"‘]"; 4 XmlDocument doc = new XmlDocument(); 5 string exeFileName = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name; 6 doc.Load(exeFileName + ".exe.config"); 7 XmlNode node = doc.SelectSingleNode(xPath); 8 return node.Attributes["value"].Value.ToString(); 9 }
这样做的话就不存在缓存的问题了。