我正在为我们正在开发的系统编写一个测试 WinForms / C# / .NET 3.5 应用程序,我们需要在运行时在 .config 文件之间切换,但结果证明这是一场噩梦。
场景如下:WinForms 应用程序旨在测试一个 WebApp,分为 5 个子系统。测试过程与子系统之间发送的消息一起工作,并且要使该过程成功,每个子系统都必须拥有自己的 .config 文件。
对于我的测试应用程序,我编写了 5 个单独的配置文件。我希望我能够在运行时在这 5 个文件之间切换,但问题是:我可以以编程方式多次编辑应用程序 .config 文件,但这些更改只会生效一次。我一直在寻找一个表格来解决这个问题,但我仍然没有成功。
我知道问题定义可能有点混乱,但如果有人帮助我,我将不胜感激。
提前致谢!
--- 更新 01-06-10 ---
有一点我之前没有提到。最初,我们的系统是一个 Web 应用程序,每个子系统之间都有 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");
}