Saya mencoba membaca kunci dari Web.config
file di lapisan yang berbeda dari lapisan web (solusi yang sama)
Inilah yang saya coba:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
Dan di sini adalah saya appSettings
dalam Web.config
berkas:
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
Ketika saya men-debug kode username
dan password
hanya null
, jadi tidak mendapatkan nilai kunci.
Apa yang saya lakukan salah untuk membaca nilai-nilai ini?
c#
asp.net-mvc
twal
sumber
sumber
NULL
. Komentar terlambat tetapi tidak ada yang menunjukkan ini.Jawaban:
Coba gunakan kelas WebConfigurationManager sebagai gantinya. Sebagai contoh:
sumber
sumber
ToString()
meskipun berlebihan.string value = ConfigurationManager.AppSettings[key] ?? "unknown value"
Jika pemanggil adalah proyek lain, Anda harus menulis config dalam proyek pemanggil bukan yang disebut.
sumber
Saya menemukan solusi ini sangat membantu . Ia menggunakan C # 4.0 DynamicObject untuk membungkus ConfigurationManager. Jadi alih-alih mengakses nilai seperti ini:
Anda mengaksesnya sebagai properti:
EDIT : Menambahkan snipet kode jika tautan menjadi usang:
sumber
Jalan penuh untuk itu
sumber
Akan ada dua file Web.config. Saya pikir Anda mungkin bingung dengan dua file itu.
Periksa gambar ini:
Dalam gambar ini Anda dapat melihat dua file Web.config. Anda harus menambahkan konstanta Anda ke konstanta yang ada di folder proyek, bukan di folder views
Semoga ini bisa membantu Anda
sumber
Masalah ini terjadi jika proyek ini sedang digunakan oleh proyek lain. Pastikan Anda menyalin kunci pengaturan aplikasi ke app.config proyek induk atau web.config.
sumber
Anda juga dapat mencoba baris ini untuk mendapatkan nilai string dari
app.config
file.sumber
dengan asumsi pengaturan di bawah ini dalam file .config:
coba ini:
sumber
Maaf saya belum menguji ini tetapi saya pikir ini dilakukan seperti ini:
sumber