Wie überprüfe ich, ob eine Anwendungseinstellung verfügbar ist?
dh app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
und in der Codedatei
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
c#
appsettings
configurationmanager
Bitcycle
quelle
quelle
Dim configValue As String = Util.IsNull(ConfigurationManager.AppSettings.Get("SettingName"), String.Empty)
quelle
Sicher zurückgegebener Standardwert über Generika und LINQ.
Wird wie folgt verwendet:
quelle
ConfigurationManager.AppSettings
unterscheidet nicht zwischen Groß- und Kleinschreibung, istAny(key => key == MyKey
jedochusing System.ComponentModel;
, Ihrer Klasse eine Anweisung hinzuzufügen , um die Verwendung der Klasse zu unterstützenTypeDescriptor
.quelle
Wenn der gesuchte Schlüssel nicht in der Konfigurationsdatei vorhanden ist, können Sie ihn nicht mit .ToString () in eine Zeichenfolge konvertieren, da der Wert null ist und Sie eine "Objektreferenz nicht festgelegt" erhalten zu einer Instanz eines Objekts "Fehler. Überprüfen Sie am besten zuerst, ob der Wert vorhanden ist, bevor Sie versuchen, die Zeichenfolgendarstellung abzurufen.
Oder wie Code Monkey vorgeschlagen hat:
quelle
Die oberen Optionen sind in jeder Hinsicht flexibel. Wenn Sie den Schlüsseltyp kennen, versuchen Sie, sie zu analysieren
bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);
quelle
Ich denke, der LINQ-Ausdruck ist vielleicht der beste:
quelle
ConfigurationManager.AppSettings
unterscheidet nicht zwischen Groß- und Kleinschreibung, istAny(key => key == MyKey
jedochIch mochte die Antwort von Codebender , brauchte sie aber, um in C ++ / CLI zu funktionieren. Damit bin ich gelandet. Es gibt keine LINQ-Verwendung, aber es funktioniert.
quelle
Die Verwendung der neuen c # -Syntax mit TryParse hat bei mir gut funktioniert:
quelle