C# 是否可以将应用程序配置中的更改序列化到应用程序';s app.config文件?

C# 是否可以将应用程序配置中的更改序列化到应用程序';s app.config文件?,c#,.net,app-config,C#,.net,App Config,是否有一种内置机制,可以使用.NET中的内置函数对app.config文件的更改进行序列化? 例如,如果我在Executable.exe.config中设置了一个在运行时更改的自定义属性,我希望.NET相应地更新Executable.exe.config 我知道我可以通过创建自己的序列化机制来实现这一点,但我想知道,在默认情况下,是否可以使用.NET中已有的功能。您可以使用该类 上面或上面的链接上有很多示例,也提供了一个简短的示例。。您需要添加对System.Configuration的引用,基

是否有一种内置机制,可以使用.NET中的内置函数对
app.config
文件的更改进行序列化?

例如,如果我在
Executable.exe.config
中设置了一个在运行时更改的自定义属性,我希望.NET相应地更新
Executable.exe.config

我知道我可以通过创建自己的序列化机制来实现这一点,但我想知道,在默认情况下,是否可以使用.NET中已有的功能。

您可以使用该类

上面或上面的链接上有很多示例,也提供了一个简短的示例。。您需要添加对
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);
为了强制程序立即获取刷新的数据,需要使用

对于那些说它在调试模式下不工作的人,还有一个重要的提示:

如果从调试器(在VS中)运行代码,则 代码实际上是在更改YourAssemblyName.vshost.exe.Config 您可以直接从bin\debug文件夹启动AssemblyName.exe 将更改YourAssemblyName.exe.Config


看看如何使用
XPATH
Good know,尽管我负责的项目从未配置为通过vshost进行调试。我不太清楚通过vshost进行调试的作用,而且这种方式调试通常会导致进程挂起在退出时,所以我选择不使用它。
// Force a reload of a changed section.
ConfigurationManager.RefreshSection("appSettings");