Bagaimana cara menambah dan membaca nilai dari file web.config ?
c#
.net
asp.net
web-config
Amira Elsayed Ismail
sumber
sumber
Jawaban:
Saya menyarankan Anda untuk tidak mengubah web.config dari Anda, karena setiap kali berubah, itu akan merestart aplikasi Anda.
Bagaimanapun Anda dapat membaca web.config menggunakan
System.Configuration.ConfigurationManager.AppSettings
sumber
Diberikan web.config berikut:
<appSettings> <add key="ClientId" value="127605460617602"/> <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/> </appSettings>
Contoh penggunaan:
using System.Configuration; string clientId = ConfigurationManager.AppSettings["ClientId"]; string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
sumber
ToString
secara eksplisit, karena pengindeks padaAppSettings
nilai pengembalian tipe itustring
sendiriJika Anda menginginkan dasar-dasarnya, Anda dapat mengakses kunci melalui:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString(); string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Untuk mengakses kunci konfigurasi web saya, saya selalu membuat kelas statis dalam aplikasi saya. Itu berarti saya dapat mengaksesnya di mana pun saya membutuhkan dan saya tidak menggunakan string di seluruh aplikasi saya (jika itu berubah dalam konfigurasi web, saya harus melalui semua kejadian yang mengubahnya). Berikut contohnya:
using System.Configuration; public static class AppSettingsGet { public static string myKey { get { return ConfigurationManager.AppSettings["myKey"].ToString(); } } public static string imageFolder { get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); } } // I also get my connection string from here public static string ConnectionString { get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; } } }
sumber
Dengan asumsi kunci ada di dalam
<appSettings>
node:ConfigurationSettings.AppSettings["theKey"];
Adapun "menulis" - sederhananya, jangan.
Web.config tidak dirancang untuk itu, jika Anda akan terus mengubah nilai, letakkan di kelas pembantu statis.
sumber
Ryan Farley memiliki posting yang bagus tentang ini di blognya, termasuk semua alasan mengapa tidak menulis kembali ke file web.config: Menulis ke File Konfigurasi Aplikasi .NET Anda
sumber
Saya adalah kelas siteConfiguration untuk memanggil semua appSetting saya seperti ini. Saya membagikannya jika itu akan membantu siapa pun.
tambahkan kode berikut di "web.config"
<configuration> <configSections> <!-- some stuff omitted here --> </configSections> <appSettings> <add key="appKeyString" value="abc" /> <add key="appKeyInt" value="123" /> </appSettings> </configuration>
Sekarang Anda dapat menentukan kelas untuk mendapatkan semua nilai appSetting Anda. seperti ini
using System; using System.Configuration; namespace Configuration { public static class SiteConfigurationReader { public static String appKeyString //for string type value { get { return ConfigurationManager.AppSettings.Get("appKeyString"); } } public static Int32 appKeyInt //to get integer value { get { return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true); } } // you can also get the app setting by passing the key public static Int32 GetAppSettingsInteger(string keyName) { try { return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName)); } catch { return 0; } } } }
Sekarang tambahkan referensi kelas sebelumnya dan untuk mengakses panggilan kunci seperti di bawah ini
string appKeyStringVal= SiteConfigurationReader.appKeyString; int appKeyIntVal= SiteConfigurationReader.appKeyInt; int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");
sumber