如何用c#读写配置文件(转自:http://blog.csdn.net/lanman/article/details/5287717)

读配置很简单,可以用ConfigurationManager.AppSettings[key] 来读出,

可是写配置文件时,如果写成这样

ConfigurationManager.AppSettings[key] = "111";

总是提示只读,那么该怎么办呢?

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Configuration;
  5. namespaceBQKJ.Common
  6. {
  7. ///<summary>
  8. ///对exe.Config文件中的appSettings段进行读写配置操作
  9. ///注意:调试时,写操作将写在vhost.exe.config文件中
  10. ///</summary>
  11. publicclassConfigAppSettings
  12. {
  13. ///<summary>
  14. ///写入值
  15. ///</summary>
  16. ///<paramname="key"></param>
  17. ///<paramname="value"></param>
  18. publicstaticvoidSetValue(stringkey,stringvalue)
  19. {
  20. //增加的内容写在appSettings段下<addkey="RegCode"value="0"/>
  21. System.Configuration.Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  22. if(config.AppSettings.Settings[key]==null)
  23. {
  24. config.AppSettings.Settings.Add(key,value);
  25. }
  26. else
  27. {
  28. config.AppSettings.Settings[key].Value=value;
  29. }
  30. config.Save(ConfigurationSaveMode.Modified);
  31. ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
  32. }
  33. ///<summary>
  34. ///读取指定key的值
  35. ///</summary>
  36. ///<paramname="key"></param>
  37. ///<returns></returns>
  38. publicstaticstringGetValue(stringkey)
  39. {
  40. System.Configuration.Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  41. if(config.AppSettings.Settings[key]==null)
  42. return"";
  43. else
  44. returnconfig.AppSettings.Settings[key].Value;
  45. }
  46. }
  47. }

其实也很简单,用这两个封装过的方法就可以了。

需要注意的是,在IDE调试时,写入的配置文件其实是写在了.vshost.exe.config文件中,所以你在.exe.config中是看不到的。只有直接运行exe文件时,才会正确写入到.exe.config中。

上一篇: SQL日期格式化应用大全 下一篇: Web服务配置错误: allowDefinition='MachineToApplication' 错误和 客户端发现响应内容类型为“text/html; charset=utf-8”...

读配置很简单,可以用ConfigurationManager.AppSettings[key] 来读出,

可是写配置文件时,如果写成这样

ConfigurationManager.AppSettings[key] = "111";

总是提示只读,那么该怎么办呢?

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Configuration;
  5. namespaceBQKJ.Common
  6. {
  7. ///<summary>
  8. ///对exe.Config文件中的appSettings段进行读写配置操作
  9. ///注意:调试时,写操作将写在vhost.exe.config文件中
  10. ///</summary>
  11. publicclassConfigAppSettings
  12. {
  13. ///<summary>
  14. ///写入值
  15. ///</summary>
  16. ///<paramname="key"></param>
  17. ///<paramname="value"></param>
  18. publicstaticvoidSetValue(stringkey,stringvalue)
  19. {
  20. //增加的内容写在appSettings段下<addkey="RegCode"value="0"/>
  21. System.Configuration.Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  22. if(config.AppSettings.Settings[key]==null)
  23. {
  24. config.AppSettings.Settings.Add(key,value);
  25. }
  26. else
  27. {
  28. config.AppSettings.Settings[key].Value=value;
  29. }
  30. config.Save(ConfigurationSaveMode.Modified);
  31. ConfigurationManager.RefreshSection("appSettings");//重新加载新的配置文件
  32. }
  33. ///<summary>
  34. ///读取指定key的值
  35. ///</summary>
  36. ///<paramname="key"></param>
  37. ///<returns></returns>
  38. publicstaticstringGetValue(stringkey)
  39. {
  40. System.Configuration.Configurationconfig=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
  41. if(config.AppSettings.Settings[key]==null)
  42. return"";
  43. else
  44. returnconfig.AppSettings.Settings[key].Value;
  45. }
  46. }
  47. }

其实也很简单,用这两个封装过的方法就可以了。

需要注意的是,在IDE调试时,写入的配置文件其实是写在了.vshost.exe.config文件中,所以你在.exe.config中是看不到的。只有直接运行exe文件时,才会正确写入到.exe.config中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值