【问题标题】:What is .net hierarchy for loading of system configuration properties用于加载系统配置属性的 .net 层次结构是什么
【发布时间】:2012-10-10 23:24:45
【问题描述】:

我有一个一般性的问题,但我也会解释我问的原因,以便您更好地理解我的意思。

我有一个在设置中定义了 web 服务 url 的 dll,在运行时它使用 Settings.Default 从设置中获取 url。但是,我们的环境都没有 (dllName).dll.config 文件,具体设置也没有在调用应用程序的 (exeName).exe.config 中定义。很明显没有使用默认值,因为它设置为某个内部 IP 地址;然而,这在生产中有效,他们没有在我能找到的任何 .config 文件中定义此设置,并且它仍然以某种方式访问​​正确的 Web 服务 URL。在这种情况下,我需要知道从哪里加载值。

所以我更广泛的问题是,层次结构如何在 .net 中加载设置?例如,它是否首先查看 machine.config,然后是 (exeName).exe.config,如果它是一个 dll,它会转到 (dllName).dll.config?它首先在哪里看,在其他地方看的顺序是什么,还有其他地方我没有提到可以定义这个配置吗?

另外,对于 DLL,如果您在设置中定义了某些内容,它是否会作为默认值嵌入到编译后的 dll 中,并且如果在任何其他 .config 文件中找不到该属性,是否会使用该属性?

【问题讨论】:

标签: c# .net dll .net-3.5 configurationmanager


【解决方案1】:

.NET 配置的分层特性提供了一个很好的层次 灵活性,允许特定用户或位置拥有自己的 配置设置。但是,这些配置设置不是 在更具体的级别上进行的隔离和重复设置具有 覆盖在不太具体的级别上进行的设置的能力。可以 如图所示,将最具体的配置文件合并到 不太具体,最具体的设置覆盖 最不具体。在 Exe 上下文中,用户(或更准确地说,本地 用户)设置最为具体,其次是漫游用户(共享 在两台或多台机器之间)、应用程序,最后是机器。

我建议您阅读以下文章,因为您的回答只是引用:

有用的是:

【讨论】:

  • 除非图片和随附文字是您自己的,否则请提供适当的出处。
  • 是的,我知道,评论仍然适用。这个答案只是那篇文章的剪切/粘贴
  • @wal 的答案是参考。当答案是 MSDN 文章或任何其他文章的一部分时,认为引用就足够了,尤其是在“广泛的问题”上。
  • 如果您没有自己输入该文本,您应该引用它。
  • @wal 请仔细阅读。它被引用,但在文字上。我在这里忘记了引用标签,所以将添加一个。参考文献也可以加上“引文”或“引文”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多