O que é a hierarquia .net para o carregamento de propriedades de configuração do sistema

Eu tenho uma pergunta geral, mas também vou explicar por que estou pedindo para que você possa ter uma idéia melhor do que quero dizer.

Eu tenho uma dll que tem um webservice url definido em Configurações, e em tempo de execução usa Settings.Default para obter o URL das configurações. No entanto, nenhum dos nossos ambientes tem um arquivo (dllName) .dll.config e a configuração específica não está definida no arquivo (exeName) .exe.config do aplicativo de chamada. É realmente claro que o valor padrão não está sendo usado, porque está definido para algum endereço IP interno; no entanto, isso funciona na produção, onde eles não têm essa configuração definida em nenhum arquivo .config que eu possa encontrar, e ainda está atingindo a URL correta do serviço da Web de alguma forma. Eu preciso saber onde o valor está sendo carregado neste caso.

Então, minha pergunta mais ampla é: como funciona a hierarquia para carregar configurações em .net? Por exemplo, ele procura em machine.config primeiro, então (exeName) .exe.config, e se for uma dll, ele irá para (dllName) .dll.config? Onde ele olha primeiro, e que ordem ele parece em outros lugares, e existem outros lugares que eu não mencionei que essa configuração poderia ser definida?

Além disso, para uma DLL, se você tiver algo definido em Configurações, isso será incorporado à dll compilada como um valor padrão e será usado se a propriedade não for encontrada em nenhum outro arquivo .config?

questionAnswers(1)

yourAnswerToTheQuestion