讀寫 appSettings

在 Windows Form 應用程式中, 我們可以建立 app.config 檔案並將一些設定字串寫在裡面, 例如...

 

在 Windows Form 應用程式中, 我們可以建立 app.config 檔案並將一些設定字串寫在裡面, 例如:

<?xml version="1.0">
<configuration>
   <appSettings>
      <add key="mySetting1" value="..." />
      <add key="mySetting2" value="..." />
   </appSettings>
   ...
</configuration>

當你編譯程式之後, VS 會將這個檔案拷貝到 bin 子目錄下的 Debug 或 Release 中, 並重新命名為 xxx.EXE.config。

要讀取 appSettings 的值, 方法很簡單:

public string getConfig(string key)
{
   return ConfigurationManager.AppSettings.Get(key);
}

如上使用 AppSettings.Get 方法就可以讀取到指定的值了。

很可惜, 如果你使用 AppSettings.Set 方法, 這個值雖然在程式執行過程中可以生效, 但是始終不會寫回到 .config 檔案中。要寫進檔案, 你必須使用如下的程式碼:

public void writeConfig(string key, string value)
{
   Configuration config = ConfigurationManager.OpenExeConfiguration(Application.ExecutablePath);
   config.AppSettings.Settings[key].Value = value;
   config.Save();
}

如果你的這段程式寫在類別中而不是 Form 程式中, 那麼 Application 類別是不合法的。在這種情況下, Application.ExecutablePath 必須從呼叫該程式的 Form 程式中傳過來。也就是說, 把它當作程式的一個參數:

public void writeConfig(string appPath, string key, string value)
{
   Configuration config = ConfigurationManager.OpenExeConfiguration(appPath);
   config.AppSettings.Settings[key].Value = value;
   config.Save();
}

然後在呼叫它的程式中傳過來就行了:

xx.writeConfig(Application.ExecutablePath, key, value);

 


Dev 2Share @ 點部落