Menyediakan Tetapan Konfigurasi untuk Perpustakaan: Alternatif kepada App.config
Tidak seperti aplikasi boleh laku, perpustakaan (DLL) tidak mempunyai akses terus kepada fail app.config. Walau bagaimanapun, adalah mungkin untuk menyimpan tetapan konfigurasi khusus untuk pustaka sambil memastikan keserasian merentas aplikasi yang menggunakannya.
Menggunakan Fail Konfigurasi Berasingan
Satu pendekatan ialah mencipta fail konfigurasi berasingan yang mengiringi DLL. Nama fail mengikut konvensyen tertentu: DllName.dll.config. Tidak seperti app.config, fail ini tidak dimuatkan secara automatik oleh aplikasi.
Untuk memuatkan dan membaca fail konfigurasi, anda boleh menentukan fungsi tersuai:
string GetAppSetting(Configuration config, string key) { // Retrieve the configuration element for the specified key KeyValueConfigurationElement element = config.AppSettings.Settings[key]; // Check if the element exists and has a non-empty value if (element != null && !string.IsNullOrEmpty(element.Value)) return element.Value; // Return an empty string if the key does not exist or has no value return string.Empty; }
Untuk menggunakan fungsi ini, anda boleh mendapatkan contoh kelas Konfigurasi dan menyerahkannya kepada GetAppSetting:
Configuration config = null; // Determine the location of the executable's configuration file string exeConfigPath = this.GetType().Assembly.Location; // Attempt to load the configuration file try { config = ConfigurationManager.OpenExeConfiguration(exeConfigPath); } catch (Exception ex) { // Handle the error here, indicating that the DLL has no satellite configuration file } if (config != null) { // Read a setting using the custom function string myValue = GetAppSetting(config, "myKey"); // ... Use the setting as needed }
Ingat untuk memasukkan rujukan kepada Ruang nama System.Configuration dan tetapkan sifat "Salin ke direktori output" fail .config kepada "Sentiasa Salin" untuk memastikan penggunaannya dengan DLL.
Atas ialah kandungan terperinci Bagaimanakah Perpustakaan Boleh Mengakses Tetapan Konfigurasi Tanpa Menggunakan app.config?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!