Anda dapat memiliki file konfigurasi terpisah, tetapi Anda harus membacanya "secara manual", ConfigurationManager.AppSettings["key"]
hanya akan membaca konfigurasi dari unit yang sedang berjalan.
Dengan asumsi Anda menggunakan Visual Studio sebagai IDE Anda, Anda dapat mengklik kanan proyek yang diinginkan → Tambah → Item baru → File Konfigurasi Aplikasi
Ini akan menambah App.config
folder proyek, menempatkan pengaturan Anda di sana di bawah <appSettings>
bagian. Jika Anda tidak menggunakan Visual Studio dan menambahkan file secara manual, pastikan untuk memberikannya nama seperti itu: DllName.dll.config , jika tidak, kode di bawah ini tidak akan berfungsi dengan baik.
Sekarang untuk membaca dari file ini memiliki fungsi seperti itu:
string GetAppSetting(Configuration config, string key)
{
KeyValueConfigurationElement element = config.AppSettings.Settings[key];
if (element != null)
{
string value = element.Value;
if (!string.IsNullOrEmpty(value))
return value;
}
return string.Empty;
}
Dan untuk menggunakannya:
Configuration config = null;
string exeConfigPath = this.GetType().Assembly.Location;
try
{
config = ConfigurationManager.OpenExeConfiguration(exeConfigPath);
}
catch (Exception ex)
{
//handle errror here.. means DLL has no sattelite configuration file.
}
if (config != null)
{
string myValue = GetAppSetting(config, "myKey");
...
}
Anda juga harus menambahkan referensi ke namespace System.Configuration agar kelas ConfigurationManager tersedia.
Saat membangun proyek, selain DLL Anda akan memiliki DllName.dll.config
file juga, itu file yang Anda harus publikasikan dengan DLL itu sendiri.
Di atas adalah kode sampel dasar, bagi mereka yang tertarik pada contoh skala penuh, silakan merujuk ke jawaban lain ini .
string exeConfigPath = this.GetType().Assembly.Location;
ke sesuatu seperti:string exeConfigPath = @"C:\MyFolder\DllFolder\ExeName.exe";