【发布时间】:2011-01-20 18:36:56
【问题描述】:
在 Stack Overflow(以及 Internet 的其余部分)中有很多关于如何读取/写入 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);
【问题讨论】:
-
aack...这解释了为什么我认为 ConfigurationManager 坏了
标签: c# debugging configuration configuration-files appsettings