Qual é a diferença entre o WebConfigurationManager
e o ConfigurationManager
?
Quando devo usar um em vez do outro?
ATUALIZADA
Acabei de olhar para o WebConfigurationManager
e, por algum motivo, você não pode acessar as strings de conexão como faz no ConfigurationManager
(como uma matriz). Alguém pode me dizer por que o MS fez assim? Parece ser difícil obter a string de conexão necessária usando o WebConfigurationManager
.
ATUALIZADO NOVAMENTE com CAVEAT!
Se você não tiver uma referência ao System.Configuration
namespace adicionado ao seu projeto, o Visual Studio mostrará um erro quando você tentar e acessar o WebConfigurationManager.ConnectionStrings
como um array!
c#
.net
asp.net
configurationmanager
webconfigurationmanager
John Bubriski
fonte
fonte
Respostas:
WebConfigurationManger sabe como lidar com a herança de configuração em um aplicativo da web. Como você sabe, pode haver vários arquivos web.config em um aplicativo - um na raiz do site e qualquer número em subdiretórios. Você pode passar o caminho para o método GetSection () para obter uma possível configuração substituída.
Se olharmos para WebConfigurationManager com Reflector, as coisas serão claras:
fonte
WebConfigurationManager é feito especificamente para aplicativos ASP.NET.
WebConfigurationManager fornece métodos adicionais para carregar arquivos de configuração aplicáveis a aplicativos da web.
O ConfigurationManager também fornece métodos para carregar arquivos de configuração aplicáveis a aplicativos ".exe".
Eu sugiro dar uma olhada em WebConfigurationManager e ver se ele fornece algo que você simplesmente não pode fazer com o ConfigurationManager e usá-lo em vez disso, caso contrário, usar o ConfigurationManager tornará muito mais fácil ter seu código usado sem problemas entre aps da web e desktop.
fonte
Embora WebConfigurationManager esteja localizado na montagem System.Web, a ConnectionStringSettingsCollection que ele retorna está localizada em System.Configuration.
Se você está recebendo o erro
ao tentar acessar o índice da matriz ...
certifique-se de ter uma referência ao assembly System.Configuration
fonte
Não tenho certeza do que você quis dizer sobre as cadeias de conexão.
Chamar WebConfigurationManager.ConnectionStrings retorna um System.Configuration.ConnectionStringSettingsCollection, que é o mesmo que você obteria se chamasse ConfigurationManager.ConnectionStrings .
Caso contrário, como diz o XOR, ele foi projetado para lidar com vários web.configs hierárquicos, combinando-os conforme necessário à medida que você move as pastas em um aplicativo.
fonte