如何使用.NET配置文件(app.config,settings.settings)来保存和恢复所有应用程序数据?

Pat*_*Pat 7 .net import configuration export configuration-files

虽然有很多关于.net配置文件的帖子,但我相信我的要求不允许提出任何解决方案(或者我不理解这个过程对我有用).

情况是我有一个Windows窗体应用程序(也可能是另一个应用程序),它绑定某些用户输入字段(例如IP地址),以及表单属性(窗口大小等)到应用程序设置(在属性中 - >设置区域).据我所知,这些设置与我项目的app.config文件中的设置相同,因此我应该能够使用System.Configuration.ConfigurationManager类来操作这些设置.

我想要做的是允许用户导出和导入所有已保存的设置.我认为保存和替换应用程序使用的配置文件会更容易,而不是对某些自定义对象进行序列化或使用INI文件.

将当前设置保存到指定文件相对容易:

internal static void Export(string settingsFilePath)
{
    var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
    config.SaveAs(settingsFilePath);
}
Run Code Online (Sandbox Code Playgroud)

但是,恢复配置文件以覆盖当前设置很困难.好像我可以像这样打开一个配置文件

var newConfig = ConfigurationManager.OpenExeConfiguration(settingsFilePath)
Run Code Online (Sandbox Code Playgroud)

但我没有看到如何完全替换当前配置中的所有设置与导入文件的设置.[编辑:此重载应该接收.exe的路径,而不是.config文件.如果调用代码未在配置文件中引用相同的程序集,则以这种方式打开exe文件可能会抛出ConfigurationErrorsException.

也许我只需要使用其他帖子中列出的方法来仅替换配置的一部分,而不是整个部分,但我不知道这将如何工作.

有任何想法吗?我是走正确的轨道,还是应该使用INI文件(或其他东西)?

Pat*_*Pat 2

由于我没有收到任何其他答案,并且对之前的解决方案不满意,因此我再次提出问题,做了更多研究,并能够提出更好的答案。请参阅如何动态加载单独的应用程序设置文件并与当前设置合并?代码和解释。