C# 配置文件读取与修改
C# 配置文件读取与修改
配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件.
两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用程序的配置文件不会实时更新.
更新应用程序的配置文件之后需刷新
ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。
ConfigurationSettings也存在这个问题, 但是我还不知道怎么刷新节点, 呵呵.
旧方法: 各位看官最好使用下面”新方法”
配置文件:
<configuration>
<appSettings>
<add key="name" value="我是远程服务器"/>
</appSettings>
</configuration>后台程序值得读取:
string s=System.Configuration.ConfigurationSettings.AppSettings["name"];
修改配置文件的值:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
/// <summary>/// 更新配置文件信息/// </summary>/// <param name="name">配置文件字段名称</param>/// <param name="Xvalue">值</param>private void UpdateConfig(string name,string Xvalue){ XmlDocument doc = new XmlDocument(); doc.Load(Application.ExecutablePath + ".config"); XmlNode node = doc.SelectSingleNode(@"//add[@key='"+name+"']"); XmlElement ele = (XmlElement)node; ele.SetAttribute("value", Xvalue); doc.Save(Application.ExecutablePath + ".config");} |
向配置文件插入值:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
///<summary> ///向.config文件的appKey结写入信息AppValue 保存设置 ///</summary> ///<param name="AppKey">节点名</param> ///<param name="AppValue">值</param>Private void SetValue(String AppKey,String AppValue){ Xmldocument xDoc=new XmlDocument(); xDoc.Load(System.Windows.Forms.Application.ExecutablePath+”.config”); XmlNode xNode; XmlElement xElem1; XmlElement xElem2; xNode=xDoc.SelectSingleNode(“//appSettings”); xElem1=(XmlElement)xNode.SelectSingleNode(“//add[@key=’”+AppKey+”’]”); if(xElem1!=null) xElem1.SetAttribute(“value”,AppValue); else { xElem2=xdoc.CreateElement(“add”); xElem2.SetAttribute(“key”,AppKey); xElem2.setAttribute(“value”,AppValue); xNode.AppendChild(xElem2); } xDoc.Save(System.Windows.Forms.Application.ExecutablePath+”.config”);} |
新方法:
System.Configuration.ConfigurationSettings.AppSettings["Key"];
但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.
但是要想调用ConfigurationManager必须要先在工程里添加system.configuration.dll程序集的引用。(在解决方案管理器中右键点击工程名称,在右键菜单中选择添加引用,.net TablePage下即可找到)添加引用后可以用 String str = ConfigurationManager.AppSettings["Key"]来获取对应的值了。
更新配置文件:
Configuration cfa = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
//添加
cfa.AppSettings.Settings.Add("key", "Name")
//修改
cfa.AppSettings.Settings["BrowseDir"].Value = "name";
最后调用
cfa.Save();
当前的配置文件更新成功。
ConfigurationManager.RefreshSection("appSettings");// 刷新命名节,在下次检索它时将从磁盘重新读取它。记住应用程序要刷新节点
C# 配置文件读取与修改的更多相关文章
- C# 配置文件读取与修改(转)
C# 配置文件读取与修改 配置文件在很多情况下都使用到, 配置文件分为两种 一种是应用程序的配置文件, 一种是web的配置文件. 两种配置文件最大的区别是web的配置文件更新之后会实时更新, 应用 ...
- python-文件操作练习-配置文件读取、修改、删除
文件操作练习:http://www.cnblogs.com/wupeiqi/articles/4950799.html global log 127.0.0.1 local2 daemon maxco ...
- VS2012中,C# 配置文件读取 + C#多个工程共享共有变量 + 整理using语句
(一) C# 配置文件读取 C#工程可以自动生成配置文件,以便整个工程可以使用设置的配置进行后续的处理工作. 1. 首先,右键工程文件-->Properties -->settings-- ...
- C#项目实例中读取并修改App.config文件
C#项目是指一系列独特的.复杂的并相互关联的活动,这些活动有着一个明确的目标或目的,必须在特定的时间.预算.资源限定内,依据规范完成.项目参数包括项目范围.质量.成本.时间.资源. 1. 向C#项目实 ...
- xp默认安装路径及本地用户配置文件存放路径修改
xp默认安装路径及本地用户配置文件存放路径修改 修改注册表可能会造成您的系统崩溃或数据丢失,请先行备份操作系统,以备不测!!! 备份注册表步骤: 1.在“桌面”上按快捷键“Ctrl+R”,调出“运行” ...
- smarty 从配置文件读取变量
smarty变量分3种: Variables [变量] Variables assigned from PHP [从PHP分配的变量] Variables loaded from config fil ...
- .Net Core配置文件读取整理
一 .配置文件说明 1.配置,主要是 指在程序中使用的一些特殊参数,并且大多数 仅在程序启动的之后指定不需要修改. 2.在以前.Net项目中配置文件主要指app.config或web.config,但 ...
- cocos2d-x开发: 一切应该从配置文件读取开始
想要做一款完整的游戏,应该从配置文件读取开始.cocos2d-x本身提供了UserDefault来操作xml格式的配置文件,准确的说配置这模块引擎开发者已经考虑到了.但是xml格式包含大量无关的格式信 ...
- WPF C#之读取并修改App.config文件
原文:WPF C#之读取并修改App.config文件 简单介绍App.config App.config文件一般是存放数据库连接字符串的. 下面来简单介绍一下App.config文件的修改和更新. ...
随机推荐
- 读书笔记-JavaScript中的全局对象
对于任何JavaScript程序,当程序开始运行时,JavaScript解释器都会初始化一个全局对象以供程序使用.这个JavaScript自身提供的全局对象的功能包括: 1.全局对象拥有一些常用的属性 ...
- HTML5 基础
1.HTML5 简介 HTML5 是最新的 HTML 标准,他是万维网的核心语言.标准通用标记语言下的一个应用“超文本标记语言”. HTML 的上一个标准 HTML4.01 诞生于 1999年,他的第 ...
- php学习日志(1)-php介绍
在学习Php之前,我们要搞懂php是什么.英文全称php: php hypertext preprocessor,即php超文本预处理器.php脚本在服务器上执行,故它是一种服务器编程语言. php文 ...
- LNMP下防跨站、跨目录安全设置,仅支持PHP 5.3.3以上版本
PHP 5.3.3以上的版本,可以修改/usr/local/php/etc/php.ini在末尾里加入: [HOST=www.vpser.net] open_basedir=/home/wwwroot ...
- 在SQL中导入Excel数据时强制以文本类型导入
Excel不是关系型数据库,在导入到sql中时对于数值型,sql有时int型会处理成float,有时数字文本混排的列,sql会认为是数值型,导入的结果有的数据变成了null,但是用sql导出excel ...
- PythonCrawl自学日志(2)
一.Scrapy环境的安装 1.配套组件的安装 由于开发环境是在VS2015Community中编码,默认下载的python3.5,系统是windows8.1,为此需要安装的组件有如下列表: 所有的组 ...
- controller.pp 各组件的安装顺序
controller 属性: admin_address => $controller_node_address, public_address => $c ...
- Network boot from AMD Am79C970A
用虚拟机安装winxp系统,出现错误信息如下: Network boot from AMD Am79C970A Copright (c)2003-2005 Vmware, Inc. Copright ...
- js 拼接 三列做为一行
function Ajax_GetCourseAndResource(data) { $(".ol-course-list").empty(); var html = " ...
- java web第一个Servlet程序
Servlet 简介 . Java Servlet是和平台无关的服务器端组件,它运行在Serlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和 ...