Akankah ConfigurationManager.AppSettings ["blah"] memunculkan pengecualian jika "blah" tidak ada di web / app.config?
Permintaan maaf yang tulus atas pertanyaan yang sangat malas ini.
.net
configuration
Ben Aston
sumber
sumber
NameValueCollection.Item
properti ...Jawaban:
Tidak, itu kembali
null
.sumber
Dari dokumentasi MSDN untuk NameValueCollection.Item Property (String) :
sumber
Tidak, itu kembali
null
.AppSettings adalah NameValueCollection - sesuai dengan kehati - hatian di halaman NameValueCollection.Get :
sumber
Tidak, itu kembali
null
.ConfigurationManager.AppSettings
adalahNameValueCollection
- dari dokumentasi MSDN :(penekanan saya)
sumber
Jawaban lain merujuk pada dokumentasi untuk properti Item. Mungkin tidak segera jelas mengapa mereka relevan dengan melihat cuplikan kode berikut.
Sintaks braket persegi digunakan dalam C # untuk mengakses pengindeks. Ini adalah properti khusus yang memungkinkan kelas diindeks dengan cara yang sama seperti array. Melihat definisi properti NameValueCollection.Item , Anda akan melihat bahwa itu tidak menggunakan sintaks properti normal. Kata kunci ini dan parameter pengindeks digunakan untuk mendefinisikan properti ini sebagai pengindeks.
Dalam dokumentasi, pengindeks secara implisit dinamai Item dan parameter dikelilingi oleh tanda kurung siku.
Tidak jelas bagi saya mengapa ada jawaban yang mereferensikan metode Dapatkan - mungkin yang satu memanggil yang lain?
Bagaimanapun, untuk menjawab pertanyaan ...
Tidak. Pengecualian tidak akan diberikan jika Anda mengakses kunci yang tidak ada - null akan dikembalikan.
Berikut adalah bagian yang relevan dari dokumentasi properti NameValueCollection.Item .
sumber
Ya http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
Sunting: ini jelas salah. Kiri untuk komentar bermanfaat di bawah ini.
sumber
NameValueCollection
tidak dapat ditemukan - yaitu sistem tidak dapat menemukan pengaturan apa pun . Koleksi Nilai Nama tidak membuat pengecualian saat Anda mencoba mengambil satu nilai yang tidak ada ..