¿Qué es la jerarquía .net para cargar las propiedades de configuración del sistema?

Tengo una pregunta general, pero también explicaré por qué le pregunto para que pueda tener una mejor idea de lo que quiero decir.

Tengo una dll que tiene una url de servicio web definida en Configuración, y en tiempo de ejecución utiliza Settings.Default para obtener la url de la configuración. Sin embargo, ninguno de nuestros entornos tiene un archivo (dllName) .dll.config, y la configuración específica no está definida en (exeName) .exe.config de la aplicación que realiza la llamada. Está realmente claro que el valor predeterminado no se está utilizando, porque está configurado en alguna dirección IP interna; sin embargo, esto funciona en la producción donde no tienen esta configuración definida en ningún archivo .config que pueda encontrar, y de alguna manera sigue llegando a la URL correcta del servicio web. Necesito saber de dónde se está cargando el valor en este caso.

Entonces, mi pregunta más general es, ¿cómo funciona la jerarquía para cargar la configuración en .net? Por ejemplo, primero se ve en machine.config, luego (exeName) .exe.config, y si es una dll, iría a (dllName) .dll.config? ¿Dónde se ve primero y qué orden se ve en otros lugares, y hay otros lugares en los que no mencioné que esta configuración podría definirse?

Además, para una DLL, si tiene algo definido en Configuración, ¿se integra en la dll compilada como un valor predeterminado, y se usa si la propiedad no se encuentra en ningún otro archivo .config?

Respuestas a la pregunta(1)

Su respuesta a la pregunta