最近项目有要求将一些数据写在web.config里面,并且内容会更改。
百度了一些资料找到以下方法:
System.Configuration.Configuration cfa = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
cfa.AppSettings.Settings["appkey"].Value = "asdadasda";
cfa.Save();
使用后键值的确会更改,但似乎也会导致appSettings块重写,而注释,空格等会被删掉。
可项目的web.config文件参数很多,如果消去了注释的话会被别人打死的,然后就又开始找资料。
找了一段时间后找到了两篇可参考文章,分别是
config file comments are removed while changing appsettings key
小高高的《读写app.config AppSettings,保留注释与不保留注释》
方法都是读取xml,然后保存.。
因为这样读取是会获取注释的,所以保存也会将原来的内容保存下来。
小高高的方式是使用XmlDocument加载文件,再用XmlNodeList保存XmlDocument .GetElementsByTagName("appSettings")获取到的xml内容
再使用XmlNode取目标组,之后使用循环XmlNode.Attributes["key/val"]获取值
判断是否目标对象后更改val并使用XmlDocument.Save保存文件。
文章若有不对的地方希望大神们能指出,小弟将尽快学习与修正,并希望该文章能对各位有所帮助。