If you refer to an external configuration file containing application settings (leaving everything else in the regular app.config), then I believe that editing only reloads these settings, this does not restart the entire application.
There is a similar question on this issue: Attached files app.config (web.config)
WRT is the problem of changing values ​​in the middle of program execution, I think you could cache values ​​locally and raise an event when they change, allowing routines to reach a suitable point before using updated values.
I think that in asp.net we kind of get it for free, because every lifecyle page is different, so the value just applies only to new page requests, and not to the middle of execution.
Edit: some more info:
Configuration changes Cause a Restarting the application domain
From MSDN :
Changes to configuration settings in Web.config files indirectly cause the application domain to restart. This behavior occurs by design. You can optionally use the configSource attribute to refer to external configuration files that do not cause a reboot when changes are made. For more information, see ConfigSource in the common attributes inherited by section elements.
Details on the ConfigurationManager class in System.Configuration are the namespace that can be used to modify configuration files programmatically (i.e., in a custom tool, if appropriate permissions to read the disk can be granted). If you adhere to the use of built-in configuration classes, I think that changing external configurations will not restart the application, but lead to events (such as the changed property ) that you could handle to make sure your code is not detected by changing the settings .
source share