在.Net平台下的配置文件主要使用在Web开发和桌面开发中,对应的配置文件类型也不一样,Web中为Web.config文件,但是在桌面应用中为App.config文件。
当然使用上也稍微有些区别,下文将会阐述。
配置文件结构大致如下:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!--自定义配置节点--> <configSections> <sectionGroup name="OwnSectionA"> <section name="AAA" type="AppLibrary.Configuration.MySelfInfoHandle,AppLibrary,Version=1.0.0.0"/> <section name="BBB" type="System.Configuration.SingleTagSectionHandler"/> </sectionGroup> <sectionGroup name="OwnSectionB"> <section name="aaa" type="System.Configuration.SingleTagSectionHandler"/> <section name="bbb" type="System.Configuration.SingleTagSectionHandler"/> </sectionGroup> </configSections> <!--自定义节点内容区域--> <OwnSectionA> <AAA> <add key="name" value="huchen's homepage"/> <add key="version" value="1.0"/> </AAA> </OwnSectionA> <!--读取修改配置节点--> <appSettings> <clear/> <add key ="Access" value="/Date/mvp.accdb"/> <add key="Sql" value="null"/> </appSettings> </configuration>
对于配置文件的使用主要分两种类型:
使用之前请确保项目已经引用了System.configuration程序集。
(一):系统预定义的配置节点(大家所熟悉的appSettings节点以及Web.config中connectionStrings节点)
对于connectionStrings配置节点的使用简单介绍,因为大家太熟悉了,主要使用方法看如下代码:
<connectionStrings> <add name="SQLConn" connectionString="data Source=.\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=nORTHWIND" providerName="System.Data.SqlClient" /> <add name="SQLConnB" connectionString="server=.\SQLEXPRESS;database=Northwind;uid=sa;pwd=de" providerName="System.Data.SqlClient"/> </connectionStrings>
System.Configuration.ConfigurationManager.ConnectionStrings["SQLConn"].ToString() 或者System.Web.Configuration.WebConfigurationManager.ConnectionStrings["SQLConn"].ToString() 即可获取配置文件中的值
对于appSettings配置节点的使用读取与connectionStrings节点类似,只不过使用WebConfigurationManager.AppSettings和ConfigurationManager.AppSettings。
下面主要说一下appSettings节点的增加,修改和删除,当然进行修改操作要确保用户具有修改权限。直接看代码:
Web中使用:
System.Configuration.AppSettingsSection app = configuration.AppSettings;
app.Settings.Add(key, value); //增加
app.Settings[key].Value=value; //修改
app.Settings.Remove(key); //删除
configuration.Save(System.Configuration.ConfigurationSaveMode.Modified);
WinForm中使用:
AppSettingsSection app = config.AppSettings;
app.Settings.Add(key, value); //增加
app.Settings[key].Value=value; //修改
app.Settings.Remove(key); //删除
config.Save(ConfigurationSaveMode.Modified);
实时读取小技巧:
ConfigurationManager.AppSettings 返回的是System.Collections.Specialized.NameValueCollection 表示可以通过索引访问的关联 String 键和 String 值的集合。
关于Winform下实时读取技巧代码段(通过在读取并展现出来就不需要重新加载了,刚修改过的节点会立刻呈现出来):
List<string> dir = new System.Collections.Generic.List<string>();
AppSettingsSection app = config.AppSettings;
string[] str = app.Settings.AllKeys;
for (int i = 0; i < str.Length; i++)
{
dir.Add(str[i] + "||" + app.Settings[str[i]].Value);
}
this.listBox1.DataSource =dir;
(二):用户自定义的配置节点(如果有用户自定义的配置节点,则必须是configuration节点下的第一个节点)
关于用户自定义的配置节点的使用(待续)