Sharing setting between user & Runtime modification: way of changing default value?
===

My question is about the user/application scope settings in VS2008 in C#: **how about having persistent settings, been able to be modified by user during Runtime, and shared between all user?** It seem loads of people are facing this situation that is just a mix between the scopes available:

-Application scope settings are not meant to be modified during Runtime but are shared by all user.
-User scope settings have the advantage to be able to be modified during Runtime but of course... are user dependent! 

With researching, it seems some people are using "brutal solution": they define the targetted settings with an application scope, and hardcode opening and modification of the app.config XML file during Runtime (as long as they don't have access restriction problem??): it's seem to me a little bit messy, but why not... 

**1-Path solution:** Like some other, I was also thinking of keeping all the setting with a user scope and changing the storing path to share the same file between all the users. Is seems a good solution, but as I have also some "real" user dependant settings, it involve having two *user.config* files with two different path: **I am not sure yet it is doable and a good practice?**

**2-Changing default values:** Another solution would be to change the default value of the user settings to use them as a kind of "application scope" (by calling reset() in program launching). If I am right, all the modified user settings are stored in the *user.config* file (In the user Local directory). The default user settings are stored in the *app.config* file under a section *userSettings*. **I am not sure if it is possible to modify it during runtime and if so, I don't know how!!** (With DefaultSettingValueAttribute !?) (To me, this section is different of the *applicationSetting* one that contains the application scope settings in read only during Runtime). This solution, if possible, seems to me the more practical and easy but again, not sure if best practice!!!)

Last solution would be to store the targeted parameters in a totally different file and not using the settings systems provide by VS. But, this is another story...

I hope my explanations were not too unclear!! 

Any comments or suggestions will be very helpful. 

Cheers, Yves
