C#專案例項中讀取並修改App.config檔案《轉》

taogchan發表於2012-11-06
#專案是指一系列獨特的、複雜的並相互關聯的活動,這些活動有著一個明確的目標或目的,必須在特定的時間、預算、資源限定內,依據規範完成。專案引數包括專案範圍、質量、成本、時間、資源。

1. 向C#專案例項中的專案新增app.config檔案:

右擊C#專案例項中專案名稱,選擇“新增”→“新增新建項”,在出現的“新增新項”對話方塊中,選擇“新增應用程式配置檔案”;如果專案以前沒有配置檔案,則預設的檔名稱為“app.config”,單擊“確定”。出現在設計器檢視中的app.config檔案為:

  1. xmlversionxmlversion="1.0"encoding="utf-8" ?> 
  2. <configuration> 
  3. configuration> 

在專案進行編譯後,在bin\Debuge檔案下,將出現兩個配置檔案(以本專案為例),一個名為“JxcManagement.EXE.config”,另一個名為“JxcManagement.vshost.exe.config”。第一個檔案為專案實際使用的配置檔案,在程式執行中所做的更改都將被儲存於此;第二個檔案為原始碼“app.config”的同步檔案,在程式執行中不會發生更改.

2.  connectionStrings配置節:

請注意:如果您的SQL版本為2005 Express版,則預設安裝時SQL伺服器例項名為localhost\SQLExpress,須更改以下例項中“Data Source=localhost;”一句為“Data Source=localhost\SQLExpress;”,在等於號的兩邊不要加上空格。

  1. <!--資料庫連線串--&gt 
  2.      <connectionStrings> 
  3.          <clear /> 
  4.          <addnameaddname="conJxcBook" 
  5.               connectionString="Data Source=localhost;Initial Catalog=jxcbook;User                                   ID=sa;password=********" 
  6.               providerName="System.Data.SqlClient" /> 
  7.      connectionStrings> 

3. appSettings配置節:

appSettings配置節為整個程式的配置,如果是對當前使用者的配置,請使用userSettings配置節,其格式與以下配置書寫要求一樣。
  1. <!--進銷存管理系統初始化需要的引數--&gt 
  2.      <appSettings> 
  3.          <clear /> 
  4.          <addkeyaddkey="userName"value="" /> 
  5.          <addkeyaddkey="password"value="" /> 
  6.          <addkeyaddkey="Department"value="" /> 
  7.          <addkeyaddkey="returnValue"value="" /> 
  8.          <addkeyaddkey="pwdPattern"value="" /> 
  9.          <addkeyaddkey="userPattern"value="" /> 
  10. appSettings> 
4.讀取與更新app.config
 
對於app.config檔案的讀寫,參照了網路文章: SystemConfiguration.asp標題為“Read/Write App.Config File with .NET 2.0”一文。
 
請注意:要使用以下的程式碼訪問app.config檔案,除新增引用System.Configuration外,還必須在專案新增對System.Configuration.dll的引用。
 
4.1 讀取connectionStrings配置節
  1. ///<summary> 
  2. ///依據連線串名字connectionName返回資料連線字串  
  3. ///summary> 
  4. ///<param name="connectionName">param> 
  5. ///<returns>returns> 
  6. private static string GetConnectionStringsConfig(string connectionName)  
  7. {  
  8. string connectionString =   
  9.         ConfigurationManager.ConnectionStrings[connectionName].ConnectionString.ToString();  
  10.     Console.WriteLine(connectionString);  
  11.     return connectionString;  
4.2 更新connectionStrings配置節
  1. ///<summary> 
  2. ///更新連線字串  
  3. ///summary> 
  4. ///<param name="newName">連線字串名稱param> 
  5. ///<param name="newConString">連線字串內容param> 
  6. ///<param name="newProviderName">資料提供程式名稱param> 
  7. private static void UpdateConnectionStringsConfig(string newName,  
  8.     string newConString,  
  9.     string newProviderName)  
  10. {  
  11.     bool isModified = false;    //記錄該連線串是否已經存在  
  12.     //如果要更改的連線串已經存在  
  13.     if (ConfigurationManager.ConnectionStrings[newName] != null)  
  14.     {  
  15.         isModified = true;  
  16.     }  
  17.     //新建一個連線字串例項  
  18.     ConnectionStringSettings mySettings =   
  19.         new ConnectionStringSettings(newName, newConString, newProviderName);  
  20.     // 開啟可執行的配置檔案*.exe.config  
  21.     Configuration config =   
  22.         ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  23.     // 如果連線串已存在,首先刪除它  
  24.     if (isModified)  
  25.     {  
  26.         config.ConnectionStrings.ConnectionStrings.Remove(newName);  
  27.     }  
  28.     // 將新的連線串新增到配置檔案中.  
  29.     config.ConnectionStrings.ConnectionStrings.Add(mySettings);  
  30.     // 儲存對配置檔案所作的更改  
  31.     config.Save(ConfigurationSaveMode.Modified);  
  32.     // 強制重新載入配置檔案的ConnectionStrings配置節  
  33.     ConfigurationManager.RefreshSection("ConnectionStrings");  
4.3 讀取appStrings配置節
  1. ///<summary> 
  2. ///返回*.exe.config檔案中appSettings配置節的value項  
  3. ///summary> 
  4. ///<param name="strKey">param> 
  5. ///<returns>returns> 
  6. private static string GetAppConfig(string strKey)  
  7. {  
  8.     foreach (string key in ConfigurationManager.AppSettings)  
  9.     {  
  10.         if (key == strKey)  
  11.         {  
  12.             return ConfigurationManager.AppSettings[strKey];  
  13.         }  
  14.     }  
  15.     return null;  
  16. }  
4.4 更新connectionStrings配置節
  1. ///  
  2. ///在*.exe.config檔案中appSettings配置節增加一對鍵、值對  
  3. ///  
  4. ///  
  5. ///  
  6. private static void UpdateAppConfig(string newKey, string newValue)  
  7. {  
  8.     bool isModified = false;      
  9.     foreach (string key in ConfigurationManager.AppSettings)  
  10.     {  
  11.        if(key==newKey)  
  12.         {      
  13.             isModified = true;  
  14.         }  
  15.     }  
  16.  
  17.     // Open App.Config of executable  
  18.     Configuration config =   
  19.         ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);  
  20.     // You need to remove the old settings object before you can replace it  
  21.     if (isModified)  
  22.     {  
  23.         config.AppSettings.Settings.Remove(newKey);  
  24.     }      
  25.     // Add an Application Setting.  
  26.     config.AppSettings.Settings.Add(newKey,newValue);     
  27.     // Save the changes in App.config file.  
  28.     config.Save(ConfigurationSaveMode.Modified);  
  29.     // Force a reload of a changed section.  
  30.     ConfigurationManager.RefreshSection("appSettings");  

C#專案例項中讀取並修改App.config檔案就介紹到這裡。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22392018/viewspace-748449/,如需轉載,請註明出處,否則將追究法律責任。

相關文章