Ich versuche, die Schlüssel aus der Web.config
Datei in einer anderen Ebene als der Webebene zu lesen (gleiche Lösung)
Folgendes versuche ich:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
Und hier ist meine appSettings
in der Web.config
Datei:
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
Wenn ich den Code debugge username
und password
nur bin null
, erhält er nicht den Wert der Schlüssel.
Was mache ich falsch, um diese Werte zu lesen?
c#
asp.net-mvc
twal
quelle
quelle
NULL
. Später Kommentar, aber niemand hat darauf hingewiesen.Antworten:
Versuchen Sie stattdessen, die WebConfigurationManager-Klasse zu verwenden. Beispielsweise:
quelle
quelle
ToString()
ist jedoch überflüssig.string value = ConfigurationManager.AppSettings[key] ?? "unknown value"
Wenn der Aufrufer ein anderes Projekt ist, sollten Sie die Konfiguration in das Aufruferprojekt schreiben, nicht in das aufgerufene.
quelle
Ich fand diese Lösung sehr hilfreich . Es verwendet C # 4.0 DynamicObject, um den ConfigurationManager zu verpacken. Anstatt auf solche Werte zuzugreifen:
Sie greifen als Eigenschaft darauf zu:
BEARBEITEN : Hinzufügen eines Code-Snippets für den Fall, dass der Link veraltet ist:
quelle
Voller Weg dafür ist
quelle
Es werden zwei Web.config-Dateien vorhanden sein. Ich denke, Sie haben diese beiden Dateien möglicherweise verwechselt.
Überprüfen Sie dieses Bild:
In diesem Bild sehen Sie zwei Web.config-Dateien. Sie sollten Ihre Konstanten zu der Konstante hinzufügen, die sich im Projektordner und nicht im Ansichtsordner befindet
Hoffe das kann dir helfen
quelle
Dieses Problem tritt auf, wenn dieses Projekt von einem anderen Projekt verwendet wird. Stellen Sie sicher, dass Sie die App-Einstellungsschlüssel in die app.config oder web.config des übergeordneten Projekts kopieren.
quelle
Sie können diese Zeile auch ausprobieren, um den Zeichenfolgenwert aus der
app.config
Datei abzurufen.quelle
unter der Annahme der folgenden Einstellung in der .config-Datei:
Versuche dies:
quelle
Entschuldigung, ich habe das nicht getestet, aber ich denke, es ist so gemacht:
quelle