我有一个一般性问题,但我也会解释我为什么要问,这样你就可以更好地理解我的意思。
我有一个在设置中定义了 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 文件中找不到该属性,是否会使用该属性?