Was ist der Unterschied zwischen dem WebConfigurationManager
und dem ConfigurationManager
?
Wann sollte ich eins über das andere verwenden?
AKTUALISIERT
Ich habe mir nur die angesehen WebConfigurationManager
, und aus irgendeinem Grund können Sie nicht ConfigurationManager
wie in einem Array auf die Verbindungszeichenfolgen zugreifen, wie Sie es in der tun . Kann mir jemand sagen, warum MS es so gemacht hat? Es scheint mühsam zu sein, die Verbindungszeichenfolge zu erhalten, die Sie mit dem benötigen WebConfigurationManager
.
WIEDER AKTUALISIERT mit CAVEAT!
Wenn Sie keinen Verweis auf den System.Configuration
Ihrem Projekt hinzugefügten Namespace haben, zeigt Visual Studio einen Fehler an, wenn Sie versuchen, auf ein WebConfigurationManager.ConnectionStrings
ähnliches Array zuzugreifen !
quelle
Antworten:
WebConfigurationManger weiß, wie mit der Konfigurationsvererbung in einer Webanwendung umgegangen wird. Wie Sie wissen, kann eine Anwendung mehrere web.config-Dateien enthalten - eine im Stammverzeichnis der Site und eine beliebige Anzahl in Unterverzeichnissen. Sie können den Pfad an die GetSection () -Methode übergeben, um eine mögliche überschriebene Konfiguration zu erhalten.
Wenn wir uns WebConfigurationManager mit Reflector ansehen würden, wären die Dinge klar:
quelle
WebConfigurationManager wurde speziell für ASP.NET-Anwendungen entwickelt.
WebConfigurationManager bietet zusätzliche Methoden zum Laden von Konfigurationsdateien für Webanwendungen.
ConfigurationManager bietet auch Methoden zum Laden von Konfigurationsdateien für ".exe" -Anwendungen.
Ich würde vorschlagen, einen Blick auf WebConfigurationManager zu werfen und zu prüfen, ob es Ihnen etwas bietet, was Sie mit ConfigurationManager einfach nicht tun können, und es stattdessen zu verwenden. Andernfalls wird die Verwendung von ConfigurationManager die nahtlose Verwendung Ihres Codes zwischen Web- und Desktop-Aps erheblich vereinfachen.
quelle
Obwohl sich WebConfigurationManager in der System.Web-Assembly befindet, befindet sich die zurückgegebene ConnectionStringSettingsCollection in System.Configuration.
Wenn Sie den Fehler erhalten
beim Versuch, auf den Array-Index zuzugreifen ...
Stellen Sie sicher, dass Sie einen Verweis auf Assembly System.Configuration haben
quelle
Ich bin mir nicht sicher, was du mit den Verbindungszeichenfolgen meinst.
Wenn Sie WebConfigurationManager.ConnectionStrings aufrufen, wird eine System.Configuration.ConnectionStringSettingsCollection zurückgegeben, die mit dem Aufruf von ConfigurationManager.ConnectionStrings identisch ist .
Andernfalls kann XOR, wie XOR sagt, mehrere hierarchische web.configs verarbeiten und diese nach Bedarf kombinieren, wenn Sie sich in den Ordnern einer Anwendung bewegen.
quelle