c#讀寫配置文件

讀配置很簡單,能夠用ConfigurationManager.AppSettings[key] 來讀出,app

但是寫配置文件時,若是寫成這樣ide

ConfigurationManager.AppSettings[key] = "111";spa

老是提示只讀,那麼該怎麼辦呢?調試

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Configuration;  
  5.   
  6. namespace BQKJ.Common  
  7. {  
  8.     /// <summary>  
  9.     /// 對exe.Config文件中的appSettings段進行讀寫配置操做  
  10.     /// 注意:調試時,寫操做將寫在vhost.exe.config文件中  
  11.     /// </summary>  
  12.     public class ConfigAppSettings  
  13.     {  
  14.         /// <summary>  
  15.         /// 寫入值  
  16.         /// </summary>  
  17.         /// <param name="key"></param>  
  18.         /// <param name="value"></param>  
  19.         public static void SetValue(string key, string value)  
  20.         {  
  21.             //增長的內容寫在appSettings段下 <add key="RegCode" value="0"/>  
  22.             System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  23.             if (config.AppSettings.Settings[key] == null)  
  24.             {  
  25.                 config.AppSettings.Settings.Add(key, value);  
  26.             }  
  27.             else  
  28.             {  
  29.                 config.AppSettings.Settings[key].Value = value;  
  30.             }  
  31.             config.Save(ConfigurationSaveMode.Modified);  
  32.             ConfigurationManager.RefreshSection("appSettings");//從新加載新的配置文件   
  33.         }  
  34.   
  35.         /// <summary>  
  36.         /// 讀取指定key的值  
  37.         /// </summary>  
  38.         /// <param name="key"></param>  
  39.         /// <returns></returns>  
  40.         public static string GetValue(string key)  
  41.         {   
  42.             System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  43.             if (config.AppSettings.Settings[key] == null)  
  44.                 return "";  
  45.             else  
  46.                 return config.AppSettings.Settings[key].Value;  
  47.         }  
  48.   
  49.     }  
  50. }     

其實也很簡單,用這兩個封裝過的方法就能夠了。server

 

須要注意的是,在IDE調試時,寫入的配置文件實際上是寫在了.vshost.exe.config文件中,因此你在.exe.config中是看不到的。只有直接運行exe文件時,纔會正確寫入到.exe.config中。ci

 private void button1_Click(object sender, EventArgs e)string

 {it

            string serverIP = ConfigHelper.GetValue("ServerIP");io

            string db = ConfigHelper.GetValue("DataBase");class

            string user = ConfigHelper.GetValue("user");

            string password = ConfigHelper.GetValue("password");

 

            string info = "serverIP:" + serverIP + "\r\n"

            + "db:" + db + "\r\n"

            + "user:" + user + "\r\n"

            + "password:" + password + "\r\n";

            MessageBox.Show(info);

 

            ConfigHelper.SetValue("DataBase", "ttdb");

            string newIP = ConfigHelper.GetValue("DataBase");

 

            MessageBox.Show(newIP);

    }

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Configuration;  
  5.   
  6. namespace BQKJ.Common  
  7. {  
  8.     /// <summary>  
  9.     /// 對exe.Config文件中的appSettings段進行讀寫配置操做  
  10.     /// 注意:調試時,寫操做將寫在vhost.exe.config文件中  
  11.     /// </summary>  
  12.     public class ConfigAppSettings  
  13.     {  
  14.         /// <summary>  
  15.         /// 寫入值  
  16.         /// </summary>  
  17.         /// <param name="key"></param>  
  18.         /// <param name="value"></param>  
  19.         public static void SetValue(string key, string value)  
  20.         {  
  21.             //增長的內容寫在appSettings段下 <add key="RegCode" value="0"/>  
  22.             System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  23.             if (config.AppSettings.Settings[key] == null)  
  24.             {  
  25.                 config.AppSettings.Settings.Add(key, value);  
  26.             }  
  27.             else  
  28.             {  
  29.                 config.AppSettings.Settings[key].Value = value;  
  30.             }  
  31.             config.Save(ConfigurationSaveMode.Modified);  
  32.             ConfigurationManager.RefreshSection("appSettings");//從新加載新的配置文件   
  33.         }  
  34.   
  35.         /// <summary>  
  36.         /// 讀取指定key的值  
  37.         /// </summary>  
  38.         /// <param name="key"></param>  
  39.         /// <returns></returns>  
  40.         public static string GetValue(string key)  
  41.         {   
  42.             System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  43.             if (config.AppSettings.Settings[key] == null)  
  44.                 return "";  
  45.             else  
  46.                 return config.AppSettings.Settings[key].Value;  
  47.         }  
  48.   
  49.     }  
  50. }  
相關文章
相關標籤/搜索