Apa perbedaan antara the WebConfigurationManager
dan the ConfigurationManager
?
Kapan saya harus menggunakan salah satu dari yang lain?
DIPERBARUI
Saya baru saja melihat WebConfigurationManager
, dan untuk beberapa alasan, Anda tidak dapat mengakses string koneksi seperti yang Anda lakukan di ConfigurationManager
(seperti array). Adakah yang bisa memberi tahu saya mengapa MS membuatnya seperti ini? Tampaknya merepotkan untuk mendapatkan string koneksi yang Anda perlukan menggunakan WebConfigurationManager
.
DIPERBARUI LAGI dengan CAVEAT!
Jika Anda tidak memiliki referensi ke System.Configuration
namespace yang ditambahkan ke proyek Anda, maka Visual Studio akan menampilkan kesalahan saat Anda mencoba dan mengakses WebConfigurationManager.ConnectionStrings
array like!
sumber
Jawaban:
WebConfigurationManger tahu bagaimana menangani warisan konfigurasi dalam aplikasi web. Seperti yang Anda ketahui, mungkin ada beberapa file web.config dalam satu aplikasi - satu di root situs dan nomor apa pun di subdirektori. Anda bisa meneruskan jalur ke metode GetSection () untuk mendapatkan kemungkinan konfigurasi yang diganti.
Jika kita melihat WebConfigurationManager dengan Reflector maka semuanya menjadi jelas:
sumber
WebConfigurationManager dibuat khusus untuk aplikasi ASP.NET.
WebConfigurationManager menyediakan metode tambahan untuk memuat file konfigurasi yang berlaku untuk aplikasi Web.
ConfigurationManager juga menyediakan metode untuk memuat file konfigurasi yang berlaku untuk aplikasi ".exe".
Saya sarankan untuk melihat WebConfigurationManager dan melihat apakah itu memberi Anda sesuatu yang tidak dapat Anda lakukan dengan ConfigurationManager dan menggunakannya sebagai gantinya, jika tidak menggunakan ConfigurationManager akan membuatnya jauh lebih mudah untuk menggunakan kode Anda secara mulus antara web dan desktop aps.
sumber
Meskipun WebConfigurationManager terletak di rakitan System.Web, ConnectionStringSettingsCollection yang dikembalikan terletak di System.Configuration.
Jika Anda mendapatkan kesalahan
ketika mencoba mengakses indeks array ...
pastikan Anda memiliki referensi untuk perakitan System.Configuration
sumber
Tidak yakin apa yang Anda maksud tentang string koneksi.
Memanggil WebConfigurationManager.ConnectionStrings akan mengembalikan System.Configuration.ConnectionStringSettingsCollection, yang sama seperti yang akan Anda dapatkan jika memanggil ConfigurationManager.ConnectionStrings .
Jika tidak, seperti yang dikatakan XOR, ini dirancang untuk menangani beberapa web.config hierarkis, menggabungkannya sesuai kebutuhan saat Anda berpindah-pindah folder dalam suatu aplikasi.
sumber