在 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);