Czy ConfigurationManager.AppSettings ["bla"] zgłosi wyjątek, jeśli "blah" nie istnieje w pliku web / app.config?
Szczere przeprosiny za super leniwe pytanie.
.net
configuration
Ben Aston
źródło
źródło
NameValueCollection.Item
nieruchomości ...Odpowiedzi:
Nie, wraca
null
.źródło
Z dokumentacji MSDN dla właściwości NameValueCollection.Item (String) :
źródło
Nie, wraca
null
.AppSettings to NameValueCollection - zgodnie z ostrzeżeniem na stronie NameValueCollection.Get :
źródło
Nie, wraca
null
.ConfigurationManager.AppSettings
toNameValueCollection
- z dokumentacji MSDN :(moje podkreślenie)
źródło
Inne odpowiedzi odnoszą się do dokumentacji właściwości Item. Może nie być od razu oczywiste, dlaczego są one odpowiednie, patrząc na następujący fragment kodu.
Składnia nawiasu kwadratowego jest używana w języku C # do uzyskiwania dostępu do indeksatorów. Są to specjalne właściwości, które umożliwiają indeksowanie klasy w taki sam sposób, jak tablica. Patrząc na definicję właściwości NameValueCollection.Item , zauważysz, że nie używa ona normalnej składni właściwości. Słowo kluczowe this i parametry indeksatora służą do definiowania tej właściwości jako indeksatora.
W dokumentacji indeksatory mają niejawną nazwę Item, a parametry są otoczone nawiasami kwadratowymi.
Nie jest dla mnie jasne, dlaczego pojawiły się odpowiedzi odwołujące się do metody Get - może jedna wywołuje drugą?
W każdym razie, aby odpowiedzieć na pytanie ...
Nie. Wyjątek nie zostanie zgłoszony, jeśli uzyskasz dostęp do nieistniejącego klucza - zostanie zwrócona wartość null.
Oto odpowiednia sekcja dokumentacji właściwości NameValueCollection.Item .
źródło
Tak http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
Edycja: to jest ewidentnie błędne. Zostawiłem pomocne komentarze poniżej.
źródło
NameValueCollection
nie można znaleźć - tj. System nie mógł znaleźć żadnych ustawień. Kolekcje wartości nazw nie generują wyjątku, gdy próbujesz pobrać pojedynczą wartość, która nie istnieje.