Вы можете иметь отдельный файл конфигурации, но вам придется читать его "вручную", ConfigurationManager.AppSettings["key"]
будет читать только конфигурацию работающей сборки.
Предполагая, что выПри использовании Visual Studio в качестве IDE вы можете щелкнуть правой кнопкой мыши нужный проект → Добавить → Новый элемент → Файл конфигурации приложения
Это добавит App.config
в папку проекта, поместите ваши настройки там в разделе <appSettings>
.Если вы не используете Visual Studio и не добавляете файл вручную, обязательно дайте ему такое имя: DllName.dll.config , в противном случае приведенный ниже код не будет работать должным образом.
Теперь для чтения из этого файла есть такая функция:
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;
}
И для ее использования:
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");
...
}
Вам также необходимо добавить ссылку на пространство имен System.Configuration, чтобыиметь доступный класс ConfigurationManager.
При сборке проекта, помимо DLL, у вас также будет файл DllName.dll.config
, который вы должны опубликовать в самой DLL.
Выше приведен базовый пример кода, для тех, кто заинтересован в полномасштабном примере, см. этот другой ответ .