Wird ConfigurationManager.AppSettings ["blah"] eine Ausnahme auslösen, wenn "blah" in der web / app.config nicht vorhanden ist?
Aufrichtige Entschuldigung für die super faule Frage.
NameValueCollection.Item
Immobilie an ...
Wird ConfigurationManager.AppSettings ["blah"] eine Ausnahme auslösen, wenn "blah" in der web / app.config nicht vorhanden ist?
Aufrichtige Entschuldigung für die super faule Frage.
NameValueCollection.Item
Immobilie an ...
Antworten:
Nein, es kehrt zurück null
.
Aus der MSDN-Dokumentation für NameValueCollection.Item-Eigenschaft (Zeichenfolge) :
Vorsicht
Diese Eigenschaft gibt in den folgenden Fällen null zurück: 1) wenn der angegebene Schlüssel nicht gefunden wird; und 2) wenn der angegebene Schlüssel gefunden wird und sein zugehöriger Wert null ist. Diese Eigenschaft unterscheidet nicht zwischen den beiden Fällen.
Nein, es kehrt zurück null
.
AppSettings ist ein Namevaluecollection - gemäß der Vorsicht auf der NameValueCollection.Get Seite:
Diese Methode gibt in den folgenden Fällen eine Nullreferenz (Nothing in Visual Basic) zurück: 1) Wenn der angegebene Schlüssel nicht gefunden wird; und 2) wenn der angegebene Schlüssel gefunden wird und sein zugehöriger Wert eine Nullreferenz ist (Nothing in Visual Basic). Diese Methode unterscheidet nicht zwischen den beiden Fällen.
Nein, es kehrt zurück null
.
ConfigurationManager.AppSettings
ist ein NameValueCollection
- aus der MSDN-Dokumentation :
Die Get-Methode unterscheidet nicht zwischen null, das zurückgegeben wird, weil der angegebene Schlüssel nicht gefunden wird, und null, das zurückgegeben wird, weil der dem Schlüssel zugeordnete Wert null ist.
(meine Betonung)
Andere Antworten beziehen sich auf die Dokumentation für die Item-Eigenschaft. Es ist möglicherweise nicht sofort ersichtlich, warum sie relevant sind, wenn man sich das folgende Codefragment ansieht.
ConfigurationManager.AppSettings["blah"]
Die Syntax in eckigen Klammern wird in C # verwendet, um auf Indexer zuzugreifen. Dies sind spezielle Eigenschaften, mit denen eine Klasse auf die gleiche Weise indiziert werden kann wie ein Array. Wenn Sie sich die Definition der Eigenschaft NameValueCollection.Item ansehen , werden Sie feststellen, dass sie nicht die normale Eigenschaftssyntax verwendet. Das Schlüsselwort this und die Indexerparameter werden verwendet, um diese Eigenschaft als Indexer zu definieren.
public string this[
string name
] { get; set; }
In der Dokumentation werden Indexer implizit Item genannt und Parameter in eckigen Klammern angegeben.
Mir ist nicht klar, warum es Antworten gab, die auf die Get- Methode verwiesen - vielleicht ruft einer den anderen auf?
Auf jeden Fall, um die Frage zu beantworten ...
Nein. Eine Ausnahme wird nicht ausgelöst, wenn Sie auf einen nicht vorhandenen Schlüssel zugreifen. Eine Null wird zurückgegeben.
Hier ist der relevante Abschnitt aus der Eigenschaftsdokumentation NameValueCollection.Item .
Diese Eigenschaft gibt in den folgenden Fällen null zurück: 1) wenn der angegebene Schlüssel nicht gefunden wird; und 2) wenn der angegebene Schlüssel gefunden wird und sein zugehöriger Wert null ist. Diese Eigenschaft unterscheidet nicht zwischen den beiden Fällen.
Ja http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
Edit: das ist eindeutig falsch. Links für die hilfreichen Kommentare unten.
NameValueCollection
nicht gefunden werden konnte - dh das System konnte keine Einstellungen finden. Name Wert Sammlungen lösen keine Ausnahme aus, wenn Sie versuchen, einen einzelnen Wert abzurufen, der nicht existiert.