【发布时间】: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 文件中找不到该属性,是否会使用该属性?
【问题讨论】:
-
来自@t3hn00b 的良好链接。这应该是一个答案。
标签: c# .net dll .net-3.5 configurationmanager