Jaka jest różnica między WebConfigurationManager
i ConfigurationManager
?
Kiedy powinienem używać jednego nad drugim?
AKTUALIZACJA
Właśnie spojrzałem na WebConfigurationManager
iz jakiegoś powodu nie możesz uzyskać dostępu do parametrów połączenia, tak jak robisz to w ConfigurationManager
(jak tablica). Czy ktoś może mi powiedzieć, dlaczego stwardnienie rozsiane zrobiło to w ten sposób? Wydaje się, że uzyskanie potrzebnych parametrów połączenia przy użyciu pliku WebConfigurationManager
.
ZAKTUALIZOWANY PONOWNIE z CAVEAT!
Jeśli nie masz odwołania do System.Configuration
przestrzeni nazw dodanej do projektu, program Visual Studio wyświetli błąd podczas próby uzyskania dostępu do WebConfigurationManager.ConnectionStrings
tablicy like an!
c#
.net
asp.net
configurationmanager
webconfigurationmanager
John Bubriski
źródło
źródło
Odpowiedzi:
WebConfigurationManger wie, jak radzić sobie z dziedziczeniem konfiguracji w aplikacji internetowej. Jak wiesz, w jednej aplikacji może znajdować się kilka plików web.config - jeden w katalogu głównym witryny i dowolna liczba w podkatalogach. Możesz przekazać ścieżkę do metody GetSection (), aby uzyskać możliwą nadpisaną konfigurację.
Gdybyśmy spojrzeli na WebConfigurationManager z Reflector, to wszystko jest jasne:
źródło
WebConfigurationManager jest stworzony specjalnie dla aplikacji ASP.NET.
WebConfigurationManager zapewnia dodatkowe metody ładowania plików konfiguracyjnych mających zastosowanie do aplikacji sieci Web.
ConfigurationManager udostępnia również metody ładowania plików konfiguracyjnych odpowiednich dla aplikacji „.exe”.
Proponuję przyjrzeć się WebConfigurationManager i sprawdzić, czy zapewnia on coś, czego po prostu nie możesz zrobić z ConfigurationManager i zamiast tego użyć go, w przeciwnym razie użycie ConfigurationManager znacznie ułatwi płynne korzystanie z kodu między aplikacjami internetowymi i desktopowymi.
źródło
Chociaż WebConfigurationManager znajduje się w zestawie System.Web, zwracane przez niego połączenie ConnectionStringSettingsCollection znajduje się w System.Configuration.
Jeśli otrzymujesz błąd
próbując uzyskać dostęp do indeksu tablicy ...
upewnij się, że masz odwołanie do zestawu System.Configuration
źródło
Nie jestem pewien, co masz na myśli, mówiąc o parametrach połączenia.
Wywołanie WebConfigurationManager.ConnectionStrings zwraca System.Configuration.ConnectionStringSettingsCollection, który jest taki sam, jak w przypadku wywołania ConfigurationManager.ConnectionStrings .
W przeciwnym razie, jak mówi XOR, jest zaprojektowany do obsługi wielu hierarchicznych plików web.config, łącząc je zgodnie z wymaganiami podczas poruszania się po folderach w aplikacji.
źródło