c# app.config是否只用在程序运行的开始阶段,在程序运行过程中能不能进行保存和更新?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# app.config是否只用在程序运行的开始阶段,在程序运行过程中能不能进行保存和更新?相关的知识,希望对你有一定的参考价值。
在winform里面有个设置项,用不用将这个设置保存到appConfig里面呢? 这个设置是随时都有可能保存的。如果保存在appConfig里面是不知只能用xml的方法来保存app.Config文件?? 请高手们指教下!!!1
如三楼 rover1367 所说的、现在修改是可以的。但是在程序没有关闭之前,读取的配置文件还是以前的那个。有没有办法在程序运行时设置一下app.config,然后读取的就是刚才的设置啊?
给个简单的函数你试试
/// <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.configexe.config和vshost.exe.config作用区别
如何在 VS2010 C# 控制台应用程序中将我的 App.config 编译到我的 exe 中?