2015-03-27 2 views
0

У меня есть приложение C# Winforms, которое использует app.config для сохранения 3 простых настроек.Каков наилучший способ обработки Multi-instance Properties.Settings.Default.Save()

  • Последний выбранный путь, как string
  • состояние окна, как bool
  • Дополнение bool

Это приложение мульти-экземпляра и когда пользователь имеет более чем один экземпляр открытого и закрывает группа приложений, они выполняются с

System.Configuration. ConfigurationErrorsException: не удалось сохранить настройки: файл конфигурации был изменен другой программой.

Каков наилучший способ управления этим?

Я знаю, что могу поймать ошибку и вернуться из метода-выхода приложения, но это кажется неправильным. Мне кажется, что должен быть способ проверить, работает ли еще один экземпляр в файле перед вызовом Properties.Settings.Default.Save();, а затем вернуться из метода.

ответ

1

Поймать исключение и позвонить Properties.Settings.Default.Reload(), затем попытайтесь сэкономить еще раз.

+0

Я предполагаю, что нет способа увидеть, используется ли файл, чтобы остановить исключение во время выполнения. – CKY

+1

Ну, конечно, можно. Но файл не используется, проблема в том, что содержимое изменилось. Вы можете использовать ['ConfigurationManager.OpenExeConfiguration'] (https://msdn.microsoft.com/en-us/library/ms134265 (v = vs.110) .aspx), чтобы найти местоположение файла настроек. – Zer0

+0

Спасибо, я ненавижу использовать исключения таким образом. – CKY

Смежные вопросы