是否有使用 .NET 中可用的内置函数app.config
序列化文件更改的内置机制?
例如,如果我Executable.exe.config
在运行时更改了一个自定义属性集,我希望 .NETExecutable.exe.config
相应地更新它。
我知道我可以通过创建自己的序列化机制来做到这一点,但想知道是否可以使用 .NET 默认情况下已经提供的功能。
是否有使用 .NET 中可用的内置函数app.config
序列化文件更改的内置机制?
例如,如果我Executable.exe.config
在运行时更改了一个自定义属性集,我希望 .NETExecutable.exe.config
相应地更新它。
我知道我可以通过创建自己的序列化机制来做到这一点,但想知道是否可以使用 .NET 默认情况下已经提供的功能。
您可以使用ConfigurationManager类。
上面的链接或这篇文章中有很多示例,也提供了一个简短的示例。您需要添加对 的引用System.Configuration
,基本上,您可以像这样访问并保存文件:
// Open App.Config of executable
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Do stuff
// Save the configuration file.
config.Save(ConfigurationSaveMode.Modified);
为了强制您的程序立即获取刷新的数据,您需要使用ConfigurationManager.RefreshSection方法刷新该部分
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");
这个线程的一个重要说明,对于那些说它在调试模式下不起作用的人:
如果您从调试器(在 VS 中)运行代码,那么您的代码实际上会更改YourAssemblyName.vshost.exe.Config如果您直接从 bin\debug 文件夹启动 YourAssemblyName .exe,它将更改YourAssemblyName.exe.Config