赞
踩
配置文件操作
配置文件一般分为内置配置文和用户自定义配置文件。
内置配置文件包括app.config、web.config、Settings.settings等等。
用户自定义配置文件一般是将配置信息放到XML文件或注册表中,配置信息一般包括程序设置,记录运行信息,保存控件的信息(比如位置,样式)。
一、内置配置文件操作
app.config和web.config操作类似,以app.config为例,Settings.settings能够指定值的类型和范围。
1.app.config文件操作
该配置文件中主要的节点有:connectionStrings、appSettings、configSections等,这几个属于常用,操作都略有不同,DotNet提供直接操作各个节点的方法。在用到ConfigurationManager时要添加system.configuration.dll程序集的引用。
程序移植后配置文件的修改会保存在.exe.config的文件中,但是根据我经验如果你不修改配置文件,一般exe不自动创建一个.exe.config的文件。
在项目进行编译后,在bin\Debuge文件下,将出现两个配置文件,一个名为“*.EXE.config”,另一个名为“*.vshost.exe.config”。第一个文件为项目实际使用的配置文件,在程序运行中所做的更改都将被保存于此;第二个文件为原代码“app.config”的同步文件,在程序运行中不会发生更改。
l connectionStrings:由于保存数据连接字符串。
读:
ConfigurationManager.ConnectionStrings["AccessDB"].ConnectionString;
写:
- //设置连接字符串
-
- ConnectionStringSettings setConnStr = newConnectionStringSettings("AccessDB", connectionString,"System.Data.OleDb");
-
- //打开当前应用程序的app.config文件,进行操作
-
- Configuration appConfig =ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-
- //由于没有更新连接字符串的方法,所以这里直接再添加一个连接字符串
-
- appConfig.ConnectionStrings.ConnectionStrings.Add(setConnStr);
-
- appConfig.Save();
-
- // 强制重新载入配置文件的ConnectionStrings配置节
-
- ConfigurationManager.RefreshSection("connectionStrings");

l appSettings:主要存储程序设置,以键值对的形式出现。
读:
String str = ConfigurationManager.AppSettings["DemoKey"];
写:
- Configuration cfg=ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
-
- cfg.AppSettings.Settings["DemoKey"].Value= "DemoValue";
-
- cfg.Save();
l configSections:自定义配置节
name:自定义配置节的名称。
type:自定义配置节的类型,主要包括:
System.Configuration.SingleTagSectionHandler
System.Configuration.DictionarySectionHandler
System.Configuration.NameValueSectionHandler。
不同的type不但设置配置节的方式不一样,最后访问配置文件的操作上也有差异。
三个不同的type操作:
- <?xmlversion="1.0" encoding="utf-8" ?>
-
- <configuration>
-
- <configSections>
-
- <sectiontype="System.Configuration.SingleTagSectionHandler"/>
-
- <sectiontype="System.Configuration.DictionarySectionHandler"/>
-
- <sectiontype="System.Configuration.NameValueSectionHandler" />
-
- </configSections>
-
- <Test1 setting1="Hello"setting2="World"/>
-
- <Test2>
-
- <add key="Hello"value="World" />
-
- </Test2>
-
- <Test3>
-
- <add key="Hello"value="World" />
-
- </Test3>
-
- </configuration>

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。