常用配置文件节点appSettings和connectionSettings说明
1、
对于
string fileType = ConfigurationManager.AppSettings["FileType "];
2、
在代码中我们可以这么实例化数据库连接对象:
///1读取web.config文件节点配置
string ConnectionStringProfile = ConfigurationManager.ConnectionStrings["OraProfileConnString"].ConnectionString;
///2实例化OracleConnection对象
OracleConnection conn = new OracleConnection(ConnectionStringProfile);
这样做的好处是一旦开发时所用的数据库和部署时的数据库不一致,仅仅需要用记事本之类的文本编辑工具编辑connectionString属性的值就行了。
自定义节点配置解析
经过查阅资料发现,有些人和我一样,只用过我上面说的两个节点,但是如果参数过多,这种做法的缺点也会明显地暴露出来:appSetting中的配置参数项只能按key名来访问,不能支持复杂的层次节点也不支持强类型, 而且由于全都只使用这一个集合,你会发现:完全不相干的参数也要放在一起!解决的方法便是使用自定义节点配置来解析。
我们来看一下如何在app.config或者web.config中增加一个自定义的配置节点。 在这篇博客中,我将介绍4种自定义配置节点的方式。
1、第一种情况——Property
配置文件如下,依照属性的方式处理:
自定义一个类,以ConfigurationSection为基类,各个属性要加上[ConfigurationProperty] ,ConfigurationProperty的构造函数中传入的name字符串将会用于config文件中,表示各参数的属性名称。
属性的值的读写要调用this[],由基类去保存。
为了能使用配置节点能被解析,需要在
实现代码如下:
namespace Demo
{
public class Section1 : ConfigurationSection
{
[ConfigurationProperty("UserName")]
public string UserName
{
get { return this["UserName"].ToString(); }
set { this["UserName"] = value; }
}
[ConfigurationProperty("Path")]
public string Path
{
get { return this["Path"].ToString(); }
set { this["Path"] = value; }
}
}
}
下面将要介绍另三种配置节点虽然复杂一点,但是一些基础的东西与这个节点是一样的,所以后面我就不再重复说明了。
2、第二种情况——Element
配置文件如下:
实现代码如下:
namespace Demo
{
public class Section2 : ConfigurationSection
{
[ConfigurationProperty("Users", IsRequired = true)]
public SectionElement Users
{
get { return (SectionElement)this["Users"]; }
}
public class SectionElement : ConfigurationElement
{
[ConfigurationProperty("UserName", IsRequired = true)]
public string UserName
{
get { return this["UserName"].ToString(); }
set { this["UserName"] = value; }
}
[ConfigurationProperty("Password", IsRequired = true)]
public string Password
{
get { return this["Password"].ToString(); }
set { this["Password"] = value; }
}
}
}
}
第二种情况比第一种情况的区别就是,数据类型也是自己定义的,具体的配置属性写在ConfigurationElement的继承类中。
3、第三种情况——CDATA
CDATA可以包含比较长的字符串,且可以包含HTML代码段,这样针对特殊字符的存放也比较方便。假如如下配置:
Test This is Test。