Есть много примеров того, как читать / писать app.config в переполнении стека (и остальной части Интернета). Однако ответы не являются согласованными, и ни вопрос, ни ответ обычно не указывают, что данные могут быть сохранены в app.vshost.config во время отладки.
В некоторых ответах даже рекомендуется использовать для этого XMLReader / XMLWriter, который не должен быть правильным ответом, поскольку для этой цели существует специальный класс Configuration
.
Мое тестирование (код ниже) показывает, что ConfigurationManager
чтения и записи происходят в app.vshost.config
во время отладки и в app.config
при нормальной работе.
Я понимаю, почему это происходит, но я хотел бы найти стандартный способ чтения / записи файла конфигурации при отладке, а не отладке. Возможно, это требует размышления, возможно, это требует записи данных в двух местах.
В любом случае, я бы предпочел, чтобы мои тестеры не смотрели ни в app.config, ни в app.vshost.config; Я хочу стандартизировать фиксированное поведение для всех моих компонентов, которые используют конфигурацию (привязки WCF, трассировка, Log4Net и т. Д.)
Нестандартная реализация может
происходят, когда жесткие коды приложений
путь и имя файла конфигурации
читать. Затем во время отладки
неверный файл конфигурации может быть прочитан или
обновлен.
Мой рабочий код приведен ниже (хотя многие люди думают , что он не работает):
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("AgentID1");
config.AppSettings.Settings.Add("AgentID1", "test12");
config.Save(ConfigurationSaveMode.Full);