我想,很多写 ASP.NET 应用程序的人,都会习惯性的把自己的一些设定值放到 Web.config 中的 appSettings 区域中,然后用 ConfigurationSettings.AppSettings (1.1) 或 ConfigurationManager.AppSettings (2.0+) 来取设定值吧,虽然它是很好用没错,但是如果设定一多的话,appSettings 区块会充斥一大堆的设定值,届时要分也不太好分(一堆不同模块的设定都混在同一区了),因此,若想要写中大型 ASP.NET 应用程序的人,可能不得不学一下如何设计自己的 Configuration 区段了。
我想,很多写 ASP.NET 应用程序的人,都会习惯性的把自己的一些设定值放到 Web.config 中的 appSettings 区域中,然后用 ConfigurationSettings.AppSettings (1.1) 或 ConfigurationManager.AppSettings (2.0+) 来取设定值吧,虽然它是很好用没错,但是如果设定一多的话,appSettings 区块会充斥一大堆的设定值,届时要分也不太好分(一堆不同模块的设定都混在同一区了),因此,若想要写中大型 ASP.NET 应用程序的人,可能不得不学一下如何设计自己的 Configuration 区段了。
其实自创自己的 Configuration 区段也不会太难:
- 在项目中加入对 System.Configuration.dll 的参考。
- 新增一个类,继承自 ConfigurationSection 类。
- 建立要使用的属性值,并套用 ConfigurationPropertyAttribute,设定属性的特性。
- 在 Web.config 中注册你的 ConfigurationSection 类。
- 在 Web.config 中使用你的 ConfigurationSection 设定。
下列程序即是一个简单的 ConfigurationSection 范例:
所有要使用在 Configuration 的属性,都要套用 ConfigurationPropertyAttribute 以设定它的特性,像是名称,默认值,是否为必要字段等等。
然后在 Web.config 中的 configSections 区段中注册它:
接着就可以在 Web.config 中使用了。
...
DisplayDefaultActionPanel="true"
DefaultActionPanelControlUrl="~/Controls/TestDefaultControl.ascx" />
...
是不是很简单呢?
定义好之后,在程序中可利用 ConfigurationManager.GetSection() 来叫用它:
原文:大专栏 [ASP.NET]撰写自己的 Configuration 区段 Part 1:不要再赖在 appSettings 的屋檐下了,写个自己的 Configuration 区段吧~