.Net 2.0 中的自定义配置节的处理程序有了点变化,不用再实现System.Configuration.IConfigurationSectionHandler接口,而是要继承 System.Configuration.ConfigurationSection 类。先来看个简单点的实现:
在web.config中,有如下的配置:







很简单,只有一个属性,此处关键是把相应的属性对应好.
public class MyHandler : ConfigurationSection
{
public MyHandler() { }
[ConfigurationProperty("Provider")] //对应于Providers结点
public MyProvider Provider
{
get { return (MyProvider)this["Provider"]; }
set { this["Provider"] = value; }
}
}
public class MyProvider : ConfigurationElement
{
[ConfigurationProperty("Name")] //对应于Name属性
public string Name
{
get { return (string)this["Name"]; }
set { this["Name"] = value; }
}
[ConfigurationProperty("File")] //对应于File属性
public string File
{
get { return (string)this["File"]; }
set { this["File"] = value; }
}
}
{
public MyHandler() { }
[ConfigurationProperty("Provider")] //对应于Providers结点
public MyProvider Provider
{
get { return (MyProvider)this["Provider"]; }
set { this["Provider"] = value; }
}
}
public class MyProvider : ConfigurationElement
{
[ConfigurationProperty("Name")] //对应于Name属性
public string Name
{
get { return (string)this["Name"]; }
set { this["Name"] = value; }
}
[ConfigurationProperty("File")] //对应于File属性
public string File
{
get { return (string)this["File"]; }
set { this["File"] = value; }
}
}
这一切做好之后,使用就非常简单了
MyConfigSectionHandler.MyHandler config =
(MyConfigSectionHandler.MyHandler)System.Configuration.ConfigurationManager.GetSection("CustomerProviders");
Response.Write(config.Provider.Name + "<br>" + config.Provider.File);
(MyConfigSectionHandler.MyHandler)System.Configuration.ConfigurationManager.GetSection("CustomerProviders");
Response.Write(config.Provider.Name + "<br>" + config.Provider.File);
下面来看一个复杂点的,比如我们要写一个URL Rewrite的配置。在web.config中做了这样的配置:

























//此处只是重写了这个类的几个最基本的的方法




















}




















使用:













最后,可以看到并不复杂的配置也写了如此多的代码。个人觉得仍然不是很方便,如果你有大量的配置并且与Web设置关系并不大,建议还是写到自定义的XML文件比较好。那样读写更方便一些。