Quelle est la différence entre le WebConfigurationManager
et le ConfigurationManager
?
Quand devrais-je utiliser l'un sur l'autre?
ACTUALISÉ
Je viens de regarder le WebConfigurationManager
, et pour une raison quelconque, vous ne pouvez pas accéder aux chaînes de connexion comme vous le faites dans le ConfigurationManager
(comme un tableau). Quelqu'un peut-il me dire pourquoi MS a fait comme ça? Il semble difficile d'obtenir la chaîne de connexion dont vous avez besoin en utilisant le WebConfigurationManager
.
MISE À JOUR AVEC CAVEAT!
Si vous n'avez pas de référence à l' System.Configuration
espace de noms ajouté à votre projet, Visual Studio affichera une erreur lorsque vous essayez d'accéder au WebConfigurationManager.ConnectionStrings
tableau comme un tableau!
la source
Réponses:
WebConfigurationManger sait comment gérer l'héritage de configuration au sein d'une application Web. Comme vous le savez, il peut y avoir plusieurs fichiers web.config dans une seule application - un à la racine du site et un nombre quelconque dans les sous-répertoires. Vous pouvez passer le chemin à la méthode GetSection () pour obtenir une configuration éventuellement remplacée.
Si nous regardons WebConfigurationManager avec Reflector, les choses sont claires:
la source
WebConfigurationManager est spécialement conçu pour les applications ASP.NET.
WebConfigurationManager fournit des méthodes supplémentaires pour charger les fichiers de configuration applicables aux applications Web.
ConfigurationManager fournit également des méthodes pour charger les fichiers de configuration applicables aux applications ".exe".
Je suggérerais de jeter un coup d'œil à WebConfigurationManager et de voir s'il vous fournit quelque chose que vous ne pouvez tout simplement pas faire avec ConfigurationManager et de l'utiliser à la place, sinon l'utilisation de ConfigurationManager facilitera l'utilisation de votre code entre les applications Web et de bureau.
la source
Bien que WebConfigurationManager se trouve dans l'assembly System.Web, le ConnectionStringSettingsCollection qu'il renvoie se trouve dans System.Configuration.
Si vous obtenez l'erreur
en essayant d'accéder à l'index du tableau ...
assurez-vous d'avoir une référence à l'assembly System.
la source
Je ne sais pas ce que vous voulez dire à propos des chaînes de connexion.
L'appel de WebConfigurationManager.ConnectionStrings renvoie un System.Configuration.ConnectionStringSettingsCollection, qui est le même que vous obtiendriez si vous appeliez ConfigurationManager.ConnectionStrings .
Sinon, comme le dit XOR, il est conçu pour gérer plusieurs web.configs hiérarchiques, en les combinant selon les besoins lorsque vous vous déplacez dans les dossiers d'une application.
la source