原文:http://www.cnblogs.com/yangyp/archive/2013/04/09/3008500.html
ASP.NET应用程序中,很大部分重要功能可以通过web.config来配置。其中有一个<configSection>的节点,里面包含了.net定义的配置节处理程序与配置节之间的关联。也可以自定义节点和自定义配置节点的处理程序。如图所示:
最近项目中使用到了自定义节点,简单总结下:在web.config中的<configSection>节点中添加要自定义的节点<section>,指定name为获取自定义配置的类实体的类名(AppAplication),Type为自定义节点处理程序的 (程序集.类名,程序集) 格式,如web.config中的自定义配置节点示例图中所示:
设计读取自定义配置节点的类结构,类关系视图如下:
CmfuConfig为对外使用web.config配置节点的类,包含一个静态属性Instance,通过调用AppConfig泛型类得到对应类型的对象(AppAplication:获取可以再.cs中配置web.config节点的对象(AppSetting)的类),通过获取到的AppAplication,获取字段AppSetting(返回此对象),然后就可以获取到AppSetting的所有字段了。注意:会优先从web.config获取,web.config没有配置的,才会从本地的AppSetting类中获取配置值。
每个类的代码示例如下:
namespace SectionTest { public class CmfuConfig { public static AppAplication Instance { get { return AppConfig<AppAplication>.Instance; } } } }
namespace SectionTest { public class AppConfig<T> { public static T instance = default(T); public static T Instance { get { if (instance == null||instance.Equals(default(T))) { instance = (T)ConfigurationManager.GetSection("AppAplication"); } return instance; } set { instance = value; } } } }
namespace SectionTest { public class AppAplication { public AppSetting AppSetting = new AppSetting(); } }