动态读取App.Config

关于APP.CONFIG

      在做Winform开发时,免不了把一些配置信息写到APP.CONFIG文件中,当程序生成后APP.CONFIG会变成以程序名+CONFIG的文件
即,如程序名为A,那么生成后的APP.CONFIG文件会变成A.EXE.CONFIG文件!

正文
      以偶在做项目为例.程序要根据用户设定的时间,自动检查OUTLOOK的"垃圾邮件箱"垃圾邮件.!偶把设定后的时间保存在了APP.CONFIG中
用户设定后再重新读取值显示到界面上,用的方法:ConfigurationSettings.AppSettings,结果发现没有读到.后来才明白,原来CONFIG文件只在程序初次运行才读取值.如果在程序运行中,改变其值然后读取,其实读的是缓存的文件.并不是CONFIG文件本身.如果想动态读取就要用XML的读方法
下面是偶写的一个方法,没啥技术含量,在此记下方便日后查询!

/// <summary>
/// Read confing
/// </summary>
/// <param name="path"></param>
/// <param name="appKey"></param>
/// <returns></returns>

public string GetConfigValue(string path,string appKey)  
{     
  XmlDocument xDoc 
= new XmlDocument();     
  
try
   
{
     xDoc.Load(path);     
    
//xDoc.Load(System.Windows.Forms.Application.ExecutablePath+".config");
    XmlNode xNode;     
    XmlElement xElem;     
    xNode 
= xDoc.SelectSingleNode("//appSettings");    
    xElem 
= (XmlElement)xNode.SelectSingleNode("//add[@key='"+appKey+"']");     
    
if(xElem!=null)   
     
return xElem.GetAttribute("value");     
    
else     
     
return   "";
   }

 
catch(Exception)
   
{
     
return "";
   }

}
 

posted on 2007-03-19 16:23 被偷De贼 阅读(7334) 评论(12)  编辑 收藏 网摘 所属分类: CSharp

评论

#1楼 2007-03-19 16:30 JesseZhao      

还不错了   回复  引用  查看    

#2楼 2007-03-19 16:42 浪子      

改变值后需要refresh一下,有现成的函数可以使用ConfigurationManager.RefreshSection();再写一个自己读取不是很晕啊...   回复  引用  查看    

#3楼 2007-03-19 16:46 abc[未注册用户]

呵呵,有很简单的方法做同样的事情。
可以使用Properties。支持读写的。
  回复  引用    

#4楼 2007-03-19 17:13 yunhuasheng      

挺好的!!   回复  引用  查看    

#5楼 2007-03-19 17:23 Anders Cui      

用自带的方法会很简单 :)

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings[key].Value = value;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(“appSettings”);
  回复  引用  查看    

#6楼 2007-03-19 17:41 TerrySun[未注册用户]

:D我也是用自己写的,能过xPath读取相应结点,
To :浪子
效率应该一样
  回复  引用    

#7楼 2007-03-19 17:53 我要购书网51goushu.com[未注册用户]

不错,收藏了   回复  引用    

#8楼 2007-03-19 19:46 壁虎[未注册用户]

呵~~就在博客圆上我应该看到过好多篇类似的了.   回复  引用    

#9楼 2007-03-20 13:40 i.Posei      

其实我还是更喜欢把配置信息写在自己定义的XML文件里!   回复  引用  查看    

#10楼 2007-04-25 15:46 小J[未注册用户]

@Anders Cui
不错,相当不错,我正发愁呢。这个方法非常好。
  回复  引用    

#11楼 2007-04-25 15:49 小J[未注册用户]

@Anders Cui
其实麻烦的我会做,但是这个程序要给一个老程序员看,如果我做的非常麻烦,会让人觉得我不会学习,这不是面子问题。
感谢Anders Cui
  回复  引用    

#12楼 2007-09-01 09:47 大道朝天[未注册用户]

高手高手高高手   回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 679988




相关文章:

相关链接:

导航

公告

  • 网名:偷
  • 本名:孙鹏
  • 职业:软件工程师
  • 位置:中国-西安
  • E-Mail:Sinosec@126.com
  • MSN:Sinosec@hotmail.com

Ubuntu

 订阅我的Blog

    RSS

统计

与我联系

搜索

 

常用链接

留言簿

我参与的团队

随笔分类

随笔档案

相册

收藏夹

工具类

关注

我的好友

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜