J'essaie de lire les clés du Web.config
fichier dans une couche différente de la couche Web (même solution)
Voici ce que j'essaye:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
Et voici mon appSettings
dans le Web.config
dossier:
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
Lorsque je débogue le code username
et que je suis password
juste null
, il n'obtient pas la valeur des clés.
Que fais-je de mal à lire ces valeurs?
c#
asp.net-mvc
twal
la source
la source
NULL
. Commentaire tardif mais personne ne l'a signalé.Réponses:
Essayez plutôt d'utiliser la classe WebConfigurationManager. Par exemple:
la source
la source
ToString()
est redondant cependant.string value = ConfigurationManager.AppSettings[key] ?? "unknown value"
Si l'appelant est un autre projet, vous devez écrire la configuration dans le projet d'appelant et non celui appelé.
la source
J'ai trouvé cette solution très utile . Il utilise C # 4.0 DynamicObject pour encapsuler le ConfigurationManager. Donc, au lieu d'accéder à des valeurs comme celle-ci:
vous y accédez en tant que propriété:
EDIT : Ajout d'extrait de code au cas où le lien deviendrait périmé:
la source
Chemin complet car c'est
la source
Il y aura deux fichiers Web.config. Je pense que vous avez peut-être confondu avec ces deux fichiers.
Vérifiez cette image:
Dans cette image, vous pouvez voir deux fichiers Web.config. Vous devez ajouter vos constantes à celle qui se trouve dans le dossier du projet et non dans le dossier des vues
J'espère que cela peut vous aider
la source
Ce problème se produit si ce projet est utilisé par un autre projet. Assurez-vous de copier les clés de configuration de l'application dans app.config ou web.config du projet parent.
la source
Vous pouvez également essayer cette ligne pour obtenir la valeur de chaîne du
app.config
fichier.la source
avec l'hypothèse ci-dessous dans le fichier .config:
essaye ça:
la source
Désolé, je n'ai pas testé cela, mais je pense que c'est fait comme ceci:
la source