У меня следующая проблема: я ввожу новую функцию в приложение (работающее как служба Windows), и я хотел бы, чтобы эта новая функция контролировалась (вкл. / выкл.) с помощью какой-либо конфигурации запись файла ( myKey ). Я могу сохранить запись конфигурации в app.config, но если я захочу изменить ее с on-> off или иначе потребуется перезапустить службу Windows, и я хочу избежать этого. Я хочу, чтобы мое приложение запускалось и принимало изменения в конфигурации.
Вопрос в том, есть ли в .NET механизм для решения этой проблемы? Думаю, я мог бы создать свой собственный файл конфигурации, а затем использовать FileSystemWatcher
и т. Д. Но, возможно, .NET позволяет использовать внешние файлы конфигурации и перезагрузит значение e ??
ConfigurationManager.AppSettings["myKey"]
Спасибо, Павел
РЕДАКТИРОВАТЬ 1: Спасибо за ответы. Однако я написал следующий фрагмент, и он не работает (я пытался создать appSettingSection в обоих местах: до и внутри цикла):
static void Main(string[] args)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// AppSettingsSection appSettingSection = (AppSettingsSection)config.GetSection("appSettings");
for (int i = 0; i < 10; i++)
{
ConfigurationManager.RefreshSection("appSettings");
AppSettingsSection appSettingSection = (AppSettingsSection)config.GetSection("appSettings");
string myConfigData = appSettingSection.Settings["myConfigData"].Value; // still the same value, doesn't get updated
Console.WriteLine();
Console.WriteLine("Using GetSection(string).");
Console.WriteLine("AppSettings section:");
Console.WriteLine(
appSettingSection.SectionInformation.GetRawXml()); // also XML is still the same
Console.ReadLine();
}
}
Я вручную редактирую файл конфигурации, когда приложение останавливается на Console.ReadLine () .