技术开发 频道

在Web.config配置文件中自定义配置节点

[IT168 技术文档]摘要:

    大部分ASP.NET应用程序都包含很多个配置信息,比较常见的有连接字符串配置ConnectionString;当我们需要用到Login控件自动发送Email时,我们就要配置Email服务器节点;还有很多如Page节点可以引入程序集和命名空间等等。根据我的经验很多网站的初始化信息(默认设置)很多都会保存在数据库中,也有很多保存在配置文件中,他们各有各的优点。我们可以在web.config中定义我们自己的节点,然后再读取或更新自定义配置文件,当然我们也可以自定义一个配置文件并将其解析读取。本文主要讲的是利用ASP.NET给我提供的一些APIs在Web.config中自定义配置节点。

    为了能够更好的说明,我们先定义一个配置节点<NExplus/>,它有一个属性网站名称webName。有自己的Providers,以及一个States节点,配置如下:

 1 <NExplus webName="Custom configuration section in web.config">
 2         <providers>
 3             <add name="CommonProvider" type="NExplus.Data.SqlCommonProvider,NExplus.Data" connectionStringName="SqlServer"/>
 4         </providers>
 5         <states>
 6             <add name="厦门" code="0592"/>
 7             <add name="福州" code="0591"/>
 8             <add name="三明" code="0598"/>
 9         </states>
10 </NExplus>
11 

读取方法:

    配置文件中就是XML文件,如果是我们自定义地配置文件可以用DotNet读取XML的方法通过序列化和反序列化等来读取,在以后的版本中还可以通过XLinQ来读取。而在web.config文件中主要可以通过两种方法来读取配置文件,当然首先要做的是在<configSections>节点中配置关联的操作类及其程序集

<!--[if !supportLists]-->    1.定义一个类,实现System.Configuration.IConfigurationSectionHandler接口,这个方法很简单就是实现一个方法,这里就不再多说了。

<!--[if !supportLists]-->    2.在ASP.NET2.0中我们已经能够很简单的操作配置文件中的节点了,他为我们提供了一系列的类如我们定义一个类只要继承ConfigurationSection就可以定义我们的节点了,子节点可以继承ConfigurationElement等等。只要在属性上标注ConfigurationProperty attribute即可。

定义配置类:

 1 public class CustomConfiguration : ConfigurationSection
 2 {
 3    [ConfigurationProperty("webName", DefaultValue="Custom configuration section in web.config ", IsRequired=false)]
 4    public string WebName
 5    {
 6       get
 7       {
 8          return this["webName"as string;
 9       }
10    }
11 }
12 

0
相关文章