c# app.config是否只用在程序运行的开始阶段,在程序运行过程中能不能进行保存和更新?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# app.config是否只用在程序运行的开始阶段,在程序运行过程中能不能进行保存和更新?相关的知识,希望对你有一定的参考价值。

在winform里面有个设置项,用不用将这个设置保存到appConfig里面呢? 这个设置是随时都有可能保存的。如果保存在appConfig里面是不知只能用xml的方法来保存app.Config文件?? 请高手们指教下!!!1
如三楼 rover1367 所说的、现在修改是可以的。但是在程序没有关闭之前,读取的配置文件还是以前的那个。有没有办法在程序运行时设置一下app.config,然后读取的就是刚才的设置啊?

用.net提供的方法只能读取,写入的话只能自己写xml。
给个简单的函数你试试
/// <summary>
/// 写配置文件
/// </summary>
/// <param name="key"></param>
/// <param name="keyValue"></param>
private void EditConfig(string key, string keyValue)//编辑参数

XmlDocument xmlDoc = new XmlDocument();
string configPath = System.Windows.Forms.Application.ExecutablePath + ".config";
xmlDoc.Load(configPath);
XmlNode xmlNode = xmlDoc.SelectSingleNode("configuration/appSettings/add[@key='" + key + "']");
xmlNode.Attributes["value"].InnerText = keyValue;
xmlDoc.Save(configPath);


---------------------------------
关于补充。
的确,.net只在程序刚启动的时候,读取一次配置文件。
会导致你说的那个问题。
试试这个
ConfigurationManager.RefreshSection("appSettings");
会刷新内存中的appsettings。
也可以通过写代码其他方法解决
参考技术A app.config 是wpf里出现的。你新建winform项目是没有的。
这里通常是保存静态全局的。比如数据的连接字符串。
至于能不能改没有测试过,但是按你得需求是不应该保存在这个地方的。
你应该建立一个全局上下文的对象,也就是全局的类对象。从而可以被不同的窗体访问。
参考技术B 自己保存到另一个文件(比如*.ini)

以上是关于c# app.config是否只用在程序运行的开始阶段,在程序运行过程中能不能进行保存和更新?的主要内容,如果未能解决你的问题,请参考以下文章

c# - 在运行时更改 App.Config 后,实体框架 ConnectionString 不会更新

使用 C# 在 app.config 文件中封装文件名

C#之app.configexe.config和vshost.exe.config作用区别

如何在 VS2010 C# 控制台应用程序中将我的 App.config 编译到我的 exe 中?

在 C# 运行时读取、写入和更新 app.config 文件中的连接字符串

C#调用WCF问题汇总