アプリケーションを閉じずに設定ファイルを更新しようとしています。問題は、キャッシュされたバージョンをまだ読んでいることです。動作していないFileSystemWatcherがあります。助けていただければ幸いです
public partial class ChangeURL : Form
{
Service ser = new Service();
Configuration config =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
public ChangeURL()
{
InitializeComponent();
textBox1.Text = ser.Url;
start();
}
private void button1_Click(object sender, EventArgs e)
{
changeSettings();
this.Close();
}
public void changeSettings()
{
KeyValueConfigurationCollection settings = config.appSettings.Settings;
try
{
ConfigurationManager.RefreshSection("appSettings");
settings["client_postCodeRef_Service"].Value = textBox1.Text;
ser.Url = settings["client_postCodeRef_Service"].Value;
config.Save(ConfigurationSaveMode.Modified);
}
catch (ConfigurationErrorsException e)
{
MessageBox.Show("[Exception error: {0}]",
e.ToString());
}
} // end change settings
public void onChange(object source, FileSystemEventArgs e)
{
ConfigurationManager.RefreshSection("appSettings");
}
public void start()
{
FileSystemWatcher fileWatcher = new FileSystemWatcher();
if (fileWatcher == null)
{
string path = Path.GetDirectoryName(config.FilePath);
string filename = Path.GetFileName(config.FilePath);
fileWatcher = new FileSystemWatcher();
fileWatcher.Path = path;
fileWatcher.Filter = filename;
fileWatcher.NotifyFilter = (NotifyFilters.CreationTime | NotifyFilters.FileName);
fileWatcher.Changed += onChange;
fileWatcher.EnableRaisingEvents = true;
} // endif
}
}
}