如何用c# ConfigManager读写配置文件



如何用c#  ConfigManager读写配置文件 。

若要正确使用ConfigManager方法,首先在项目中添加System.Configuration  再Using System.Configuration 即可。

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

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

ConfigurationManager.AppSettings[key] = “111″;

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

using System;
using System.Collections.Generic;
using System.Text;
using System.Configuration;


namespace BQKJ.Common
{
   ///
   /// 对exe.Config文件中的appSettings段进行读写配置操作
   /// 注意:调试时,写操作将写在vhost.exe.config文件中
   ///
   public class ConfigAppSettings
   {
       ///
       /// 写入值
       ///
       ///
       ///
       public static void SetValue(string key, string value)
       {
           //增加的内容写在appSettings段下
           System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
           if (config.AppSettings.Settings[key] == null)
           {
               config.AppSettings.Settings.Add(key, value);
           }
           else
           {
               config.AppSettings.Settings[key].Value = value;
           }
           config.Save(ConfigurationSaveMode.Modified);
           ConfigurationManager.RefreshSection(“appSettings”);//重新加载新的配置文件
       }

       ///
       /// 读取指定key的值
       ///
       ///
       ///
       public static string GetValue(string key)
       {
           System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
           if (config.AppSettings.Settings[key] == null)
               return “”;
           else
               return config.AppSettings.Settings[key].Value;
       }

   }
}

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

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