As chaves duplicadas no app.config não lançam exceção
-
06-07-2019 - |
Pergunta
Descobri isso por acaso quando tenho um pares de chave/valor duplicado no meu arquivo app.config para um aplicativo .NET 2.0 Console. Para minha surpresa, funciona e o aplicativo lê o último par. Eu estava puxando meu cabelo ao tentar descobrir por que não conseguia buscar o valor correto de uma chave (porque não percebi que uma chave semelhante com um valor antigo estava mais baixo no arquivo de configuração).
Exemplo do arquivo de configuração:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="key1" value="val1"/>
<add key="key1" value="val2"/>
</appSettings>
</configuration>
Minha pergunta: não é "melhor" que a estrutura esteja aplicando a chave única, lançando uma exceção durante a startup ou talvez um aviso durante a compilação?
NOTA: É claro que não podemos realmente fazer muito sobre o comportamento da estrutura, apenas queremos obter alguns feedbacks.
Solução
Parece que está se comportando assim de propósito (suportar vários valores para a mesma chave)Aquié um artigo que encontrei.