什么是系统配置属性的加载.NET层次(What is .net hierarchy for load

2019-07-31 04:40发布

我有一个一般性的问题,但我也将解释为什么我要问这样你就可以得到我的意思更好的主意。

我有一个在设置中定义一个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文件发现了什么?

Answer 1:

.NET配置的分层性质提供了很大的灵活性水平,允许特定用户或位置有自己的配置设置。 然而,这些配置设置都不是孤立的,在一个更具体的级别进行重复设置,必须覆盖在较不具体的级别进行设置的能力。 如可以在图片中可以看出,最具体的配置文件合并到不太具体,最具体的设置覆盖最不具体。 在埃克上下文中,用户(或者更精确地说,本地用户)设置是最具体的,其次是漫游用户(两个或两个以上计算机之间共享),应用程序,最后机。

我建议你阅读下面的文章,因为你的答案只是一个引用:

  • 开裂NET配置的奥秘

而有用的将是:

  • 揭开NET配置的奥秘

  • 解码NET配置的奥秘



文章来源: What is .net hierarchy for loading of system configuration properties