.netFramework4.5でアプリケーションを作成しています
アプリの構成値(appSettingsセクション)をロードして変更を書き込みたいときはいつでも、セクションを更新しても変更が表示されません。私は何を間違っていますか?どうすればそれを解決できますか?
コード
private void LoadConfig()
{
NameValueCollection appSettings = ConfigurationManager.AppSettings;
for (int i = 0; i < appSettings.Count; i++)
{
switch (appSettings.GetKey(i))
{
case "initialCatalog":
txtInitialCatalog.Text = appSettings.GetValues(i)[0];
break;
case "dataSource":
txtDatasource.Text = appSettings.GetValues(i)[0];
break;
case "userName":
txtUsername.Text = appSettings.GetValues(i)[0];
break;
case "password":
txtPassword.Text = appSettings.GetValues(i)[0];
break;
case "portalUrl":
txtUrl.Text = appSettings.GetValues(i)[0];
break;
}
}
}
private void SaveConfig()
{
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
KeyValueConfigurationCollection appSettings = config.AppSettings.Settings;
appSettings["initialCatalog"].Value = txtInitialCatalog.Text;
appSettings["dataSource"].Value = txtDatasource.Text;
appSettings["userName"].Value = txtUsername.Text;
appSettings["password"].Value = txtPassword.Text;
appSettings["portalUrl"].Value = txtUrl.Text;
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
App.configファイル
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="initialCatalog" value="a" />
<add key="dataSource" value="b" />
<add key="password" value="c" />
<add key="userName" value="d" />
<add key="portalUrl" value="e" />
<add key="poolingTime" value="60000" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
フォームがアクティブ化されたときにReadConfig()を呼び出し、ボタンが押されたときにデータを保存します([OK]または[適用])。アプリケーションを閉じて再実行しますが、app.configファイルは変更されません。
何か案は???