本文將談談C#項目實例中讀取并修改App.config文件,AppConfig最重要的功能就是,它將命令行選項和配置文件選項統(tǒng)一到一種數(shù)據(jù)結構中。盡管這會導致復雜化。
 C#項目是指一系列獨特的、復雜的并相互關聯(lián)的活動,這些活動有著一個明確的目標或目的,必須在特定的時間、預算、資源限定內(nèi),依據(jù)規(guī)范完成。項目參數(shù)包括項目范圍、質(zhì)量、成本、時間、資源。
1. 向C#項目實例中的項目添加app.config文件:
右擊C#項目實例中項目名稱,選擇“添加”→“添加新建項”,在出現(xiàn)的“添加新項”對話框中,選擇“添加應用程序配置文件”;如果項目以前沒有配置文件,則默認的文件名稱為“app.config”,單擊“確定”。出現(xiàn)在設計器視圖中的app.config文件為:
- <?xmlversionxmlversion="1.0"encoding="utf-8" ?> 
 - <configuration> 
 
</configuration>  
在項目進行編譯后,在bin\Debuge文件下,將出現(xiàn)兩個配置文件(以本項目為例),一個名為“JxcManagement.EXE.config”,另一個名為“JxcManagement.vshost.exe.config”。***個文件為項目實際使用的配置文件,在程序運行中所做的更改都將被保存于此;第二個文件為原代碼“app.config”的同步文件,在程序運行中不會發(fā)生更改.
2.  connectionStrings配置節(jié):
請注意:如果您的SQL版本為2005 Express版,則默認安裝時SQL服務器實例名為localhost\SQLExpress,須更改以下實例中“Data Source=localhost;”一句為“Data Source=localhost\SQLExpress;”,在等于號的兩邊不要加上空格。
-  
 -      <connectionStrings> 
 
         <clear />          <addnameaddname="conJxcBook"               connectionString="Data Source=localhost;Initial Catalog=jxcbook;User                                   ID=sa;password=********"               providerName="System.Data.SqlClient" />      </connectionStrings>  
3. appSettings配置節(jié):
appSettings配置節(jié)為整個程序的配置,如果是對當前用戶的配置,請使用userSettings配置節(jié),其格式與以下配置書寫要求一樣。
-  
 -      <appSettings> 
 -          <clear /> 
 -          <addkeyaddkey="userName"value="" /> 
 -          <addkeyaddkey="password"value="" /> 
 -          <addkeyaddkey="Department"value="" /> 
 -          <addkeyaddkey="returnValue"value="" /> 
 -          <addkeyaddkey="pwdPattern"value="" /> 
 -          <addkeyaddkey="userPattern"value="" /> 
 - </appSettings> 
 
 
4.讀取與更新app.config
 
 
請注意:要使用以下的代碼訪問app.config文件,除添加引用System.Configuration外,還必須在項目添加對System.Configuration.dll的引用。
 
4.1 讀取connectionStrings配置節(jié)
- ///<summary> 
 - ///依據(jù)連接串名字connectionName返回數(shù)據(jù)連接字符串  
 - ///</summary> 
 - ///<param name="connectionName"></param> 
 - ///<returns></returns> 
 - private static string GetConnectionStringsConfig(string connectionName)  
 - {  
 - string connectionString =   
 -         ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();  
 -     Console.WriteLine(connectionString);  
 -     return connectionString;  
 - } 
 
 
4.2 更新connectionStrings配置節(jié)
- ///<summary> 
 - ///更新連接字符串  
 - ///</summary> 
 
///<param name="newName">連接字符串名稱</param> ///<param name="newConString">連接字符串內(nèi)容</param> ///<param name="newProviderName">數(shù)據(jù)提供程序名稱</param> private static void UpdateConnectionStringsConfig(string newName,      string newConString,      string newProviderName)  {      bool isModified = false;    //記錄該連接串是否已經(jīng)存在      //如果要更改的連接串已經(jīng)存在      if (ConfigurationManager.ConnectionStrings[newName] != null)      {          isModified = true;      }      //新建一個連接字符串實例      ConnectionStringSettings mySettings =           new ConnectionStringSettings(newName, newConString, newProviderName);      // 打開可執(zhí)行的配置文件*.exe.config      Configuration config =           ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);      // 如果連接串已存在,首先刪除它      if (isModified)      {          config.ConnectionStrings.ConnectionStrings.Remove(newName);      }      // 將新的連接串添加到配置文件中.      config.ConnectionStrings.ConnectionStrings.Add(mySettings);      // 保存對配置文件所作的更改      config.Save(ConfigurationSaveMode.Modified);      // 強制重新載入配置文件的ConnectionStrings配置節(jié)      ConfigurationManager.RefreshSection("ConnectionStrings");  } 4.3 讀取appStrings配置節(jié)
 
- ///<summary> 
 - ///返回*.exe.config文件中appSettings配置節(jié)的value項  
 - ///</summary> 
 
///<param name="strKey"></param> ///<returns></returns> private static string GetAppConfig(string strKey)  {      foreach (string key in ConfigurationManager.AppSettings)      {          if (key == strKey)          {              return ConfigurationManager.AppSettings[strKey];          }      }      return null;  }   
4.4 更新connectionStrings配置節(jié)
-  
 -  
 
   private static void UpdateAppConfig(string newKey, string newValue)  {      bool isModified = false;          foreach (string key in ConfigurationManager.AppSettings)      {         if(key==newKey)          {                  isModified = true;          }      }            Configuration config =           ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);           if (isModified)      {          config.AppSettings.Settings.Remove(newKey);      }               config.AppSettings.Settings.Add(newKey,newValue);              config.Save(ConfigurationSaveMode.Modified);           ConfigurationManager.RefreshSection("appSettings");  }  
C#項目實例中讀取并修改App.config文件就介紹到這里。
【編輯推薦】
- C#字符串操作步驟
 
- C#集成開發(fā)環(huán)境淺析
 
- Visual C# .NET應用程序
 
- C# TimeLabel控件詳解
 
- C#復合控件開發(fā)技術