Что такое иерархия .net для загрузки свойств конфигурации системы

У меня есть общий вопрос, но я также объясню, почему я спрашиваю, чтобы вы могли лучше понять, что я имею в виду.

У меня есть DLL, URL-адрес веб-службы которого определен в настройках, и во время выполнения он использует Settings.Default для получения URL-адреса из настроек. Однако ни в одной из наших сред нет файла (dllName) .dll.config, а конкретный параметр не определен в (exeName) .exe.config вызывающего приложения. Действительно ясно, что значение по умолчанию не используется, потому что оно установлено на некоторый внутренний IP-адрес; тем не менее, это работает в производственном процессе, где им не задают этот параметр в любом файле .config, который я могу найти, и он все еще каким-то образом попадает в правильный URL-адрес веб-службы. Мне нужно знать, откуда значение загружается в этом случае.

Итак, мой более общий вопрос: как работает иерархия для загрузки настроек в .net? Например, сначала он просматривает файл machine.config, затем (exeName) .exe.config и, если это dll, он перейдет в (dllName) .dll.config? Где он выглядит первым, и в каком порядке он выглядит в других местах, и есть ли другие места, где я не упомянул, что эта конфигурация может быть определена?

Кроме того, для DLL, если у вас есть что-то определенное в Настройках, это встроено в скомпилированную dll как значение по умолчанию, и используется ли оно, если свойство не найдено ни в каком другом файле .config?