`
guoyiqi
  • 浏览: 964109 次
社区版块
存档分类
最新评论

如何用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中。

读配置很简单,可以用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中。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics