Если вы ссылаетесь на внешний конфигурационный файл, который содержит настройки приложения (оставляя все остальное в обычном файле app.config), то я считаю, что редактирование только перезагружает эти настройки, но не заставляет перезапускать все приложение.
Здесь есть похожий вопрос по теме:
Вложенные файлы app.config (web.config)
WRT проблема изменения значений в середине выполнения программы, я думаю, вы могли бы локально кэшировать значения и вызывать событие при их изменении, позволяя подпрограммам достичь подходящей точки перед использованием обновленных значений.
Я думаю, что в asp.net мы вроде как получаем это бесплатно, потому что каждый жизненный цикл страницы отличается, поэтому значение просто применяется только к новым запросам страницы, а не в середине выполнения.
Редактировать: Немного дополнительной информации:
Изменения конфигурации вызывают перезапуск домена приложения
С MSDN :
Изменения параметров конфигурации в файлах Web.config косвенно приводят к перезапуску домена приложения. Такое поведение происходит по замыслу. При желании вы можете использовать атрибут configSource для ссылки на внешние файлы конфигурации, которые не вызывают перезапуск при внесении изменений. Для получения дополнительной информации см. ConfigSource в Общих Атрибутах, Унаследованных Элементами Раздела.
Дополнительная информация о классе ConfigurationManager в пространстве имен System.Configuration , который можно использовать для программного изменения файлов конфигурации (т. Е. В пользовательском инструменте, если соответствующие разрешения на чтение с диска могут предоставляться). Если вы будете использовать встроенные классы конфигурации, я думаю, что изменение внешних конфигураций не приведет к перезапуску приложения, но вызовет события (такие как свойство change ), которые вы можете обработать, чтобы гарантировать, что ваш код не заразился изменением настроек.