То, что вам нужно, может быть достигнуто с помощью Разделы пользовательской конфигурации .Эта статья MSDN содержит некоторые подробности и примеры того, как реализовать такие разделы конфигурации.
Если вам нужны простые ключи / значения конфигурации, как в разделе appSettings, тогдасоздать пользовательский раздел конфигурации довольно просто.
Первое, что вам нужно сделать, это определить свой раздел конфигурации внутри web.config:
<configSections>
<section name="GmailSettings" restartOnExternalChanges="true" type="System.Configuration.NameValueFileSectionHandler" />
</configSections>
Теперь внутриВ файле web.config вы можете объявить раздел GmailSettings и установить расположение внешнего файла конфигурации, который вы собираетесь использовать для этого параметра:
<GmailSettings configSource="GmailSettings.config"></GmailSettings>
configSource указывает имя и расположение внешнего файла конфигурации, используемого для определения раздела GmailSettings.Обратите внимание на атрибут restartOnExternalChanges
, используемый при определении раздела.Установите значение true, если вы хотите, чтобы приложение автоматически перезапускалось при изменении файла GmailSettings.config (как это происходит при изменении файла web.config).
Ниже приведен пример реализации GmailSettings.config file:
<?xml version="1.0"?>
<GmailSettings>
<add key="userName" value="blabla"/>
<add key="password" value="moreBla"/>
</GmailSettings>
Вы можете получить доступ к настройкам из GmailSettings, используя метод ConfigurationManager.GetSection()
или реализовав вспомогательный класс , как показано ниже:
public class GmailSettings
{
private static readonly GmailSettings _instance = new GmailSettings();
private NameValueCollection _settings = ConfigurationManager.GetSection("GmailSettings") as NameValueCollection;
public static GmailSettings Instance
{
get { return _instance; }
}
public string this[string key]
{
get { return _settings[key]; }
}
}
Доступ к настройкам теперь можно получить, например, GmailSettings.Instance["userName"]
.
Надеюсь, это поможет.