Я пишу тестовое приложение WinForms / C # / .NET 3.5 для системы, которую мы разрабатываем, и у нас возникла необходимость переключаться между файлами .config во время выполнения, но это оказывается кошмаром.
Вот сцена: приложение WinForms предназначено для тестирования WebApp, разделенного на 5 подсистем. Процесс тестирования работает с сообщениями, отправляемыми между подсистемами, и для успешного выполнения этого процесса каждая подсистема должна иметь свой собственный файл .config.
Для моего тестового приложения я написал 5 отдельных файлов конфигурации. Я хотел бы иметь возможность переключаться между этими 5 файлами во время выполнения, но проблема заключается в следующем: я могу программно редактировать файл .config приложения несколько раз, но эти изменения вступят в силу только один раз. Я долго искал форму для решения этой проблемы, но все равно не смог.
Я знаю, что определение проблемы может быть немного запутанным, но я был бы очень признателен, если бы кто-то помог мне.
Заранее спасибо!
--- ОБНОВЛЕНИЕ 01-06-10 ---
Есть кое-что, что я не упомянул раньше. Первоначально наша система представляет собой веб-приложение с вызовами WCF между каждой подсистемой. По причинам тестирования производительности (мы используем ANTS 4) нам пришлось создать локальную копию сборок и ссылаться на них из тестового проекта. Возможно, это звучит немного неправильно, но мы не смогли найти удовлетворительный способ измерения производительности удаленного приложения.
--- Конец обновления ---
Вот что я делаю:
public void UpdateAppSettings(string key, string value)
{
XmlDocument xmlDoc = XmlDocument.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
foreach (XmlElement item in xmlDoc.DocumentElement)
{
foreach (XmlNode node in item.ChildNodes)
{
if (node.Name == key)
{
node.Attributes[0].Value = value;
break;
}
}
}
xmlDoc.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);
System.Configuration.ConfigurationManager.RefreshSection("section/subSection");
}