2017-01-09 2 views
0

J'essaie de lire la valeur de la section appSettings du fichier app.config. Je ne comprends pas pourquoi, mais ConfigurationManager ne lit que la première clé (log4net.Internal.Debug), pendant ce temps j'ai besoin de deux autres clés. Voici appSettings.ConfigurationManager.AppSettings ne lit que la première clé

<appSettings> 
    <add key="log4net.Internal.Debug" value="true" /> 
    <add key="SendGridUser" value="some value" /> 
    <add key="SendGridPassword" value="some value" /> 
    </appSettings> 

Voici le code:

var username = ConfigurationManager.AppSettings["SendGridUser"]; 
var password = ConfigurationManager.AppSettings["SendGridPassword"]; 
+0

Avez-vous une erreur ou une valeur vide? –

+0

Il n'y a rien de mal avec ce code. Le problème est dans la partie du code que vous ne nous montrez pas. – Sefe

+0

est-ce qu'il lit toujours la première valeur? – NicoRiff

Répondre

2

Si en mode débogage vous ne voyez qu'une seule clé dans la collecte AppSettings, cela signifie ConfigurationManager n'est pas le fichier de configuration de lecture que vous pensez qu'il devrait lire. Raisons possibles:

  • Vous n'avez pas « copier si plus récent » ou « copie toujours » sélectionné pour le fichier de configuration Copy to Output Directory réglage. Ainsi, le fichier n'a pas été mis à jour dans le dossier de construction.
  • Il existe transformation pour la version de débogage qui supprime certains paramètres de la configuration. Vérifiez si vous avez App.Debug.config dans l'explorateur de solution.
+0

Certes, il n'y a aucune transformation sur ce app.config particulier. Vous aviez raison à propos du paramètre Copy to Output Directory, mais cela n'a pas aidé. –

+0

@ andrey.shedko hmm essayez de reconstruire la solution et vérifiez ce que vous avez dans le dossier de construction du projet –