Comment vérifier si un paramètre d'application est disponible?
ie app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
et dans le fichier de code
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
c#
appsettings
configurationmanager
bitcycle
la source
la source
Dim configValue As String = Util.IsNull(ConfigurationManager.AppSettings.Get("SettingName"), String.Empty)
la source
Valeur par défaut renvoyée en toute sécurité via les génériques et LINQ.
Utilisé comme suit:
la source
ConfigurationManager.AppSettings
n'est pas sensible à la casse,Any(key => key == MyKey
cependantusing System.ComponentModel;
déclaration à votre classe pour soutenir l'utilisation de laTypeDescriptor
classe.la source
Si la clé que vous recherchez n'est pas présente dans le fichier de configuration, vous ne pourrez pas la convertir en chaîne avec .ToString () car la valeur sera nulle et vous obtiendrez un "Référence d'objet non définie à une instance d'une erreur d'objet ". Il est préférable de voir d'abord si la valeur existe avant d'essayer d'obtenir la représentation sous forme de chaîne.
Ou, comme Code Monkey l'a suggéré:
la source
Les options supérieures offrent une flexibilité à tous les niveaux, si vous connaissez le type de clé, essayez de les analyser
bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);
la source
Je pense que l'expression LINQ peut être la meilleure:
la source
ConfigurationManager.AppSettings
n'est pas sensible à la casse,Any(key => key == MyKey
cependantJ'ai aimé la réponse de codebender , mais j'en avais besoin pour fonctionner en C ++ / CLI. C'est ce avec quoi j'ai fini. Il n'y a pas d'utilisation LINQ, mais fonctionne.
la source
L'utilisation de la nouvelle syntaxe c # avec TryParse a bien fonctionné pour moi:
la source