[ASP.NET]撰写自己的 Configuration 区段 Part 1:不要再赖在 appSettings 的屋檐下了,写个自己的 Configuration 区段吧~

我想,很多写 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 区段也不会太难:

  1. 在项目中加入对 System.Configuration.dll 的参考。
  2. 新增一个类,继承自 ConfigurationSection 类。
  3. 建立要使用的属性值,并套用 ConfigurationPropertyAttribute,设定属性的特性。
  4. 在 Web.config 中注册你的 ConfigurationSection 类。
  5. 在 Web.config 中使用你的 ConfigurationSection 设定。

下列程序即是一个简单的 ConfigurationSection 范例:

所有要使用在 Configuration 的属性,都要套用 ConfigurationPropertyAttribute 以设定它的特性,像是名称,默认值,是否为必要字段等等。

然后在 Web.config 中的 configSections 区段中注册它:


  
     


  

接着就可以在 Web.config 中使用了。



...

      ContainerControl
    DisplayDefaultActionPanel="true"
    DefaultActionPanelControlUrl="~/Controls/TestDefaultControl.ascx" />


...

是不是很简单呢?

定义好之后,在程序中可利用 ConfigurationManager.GetSection() 来叫用它:

原文:大专栏  [ASP.NET]撰写自己的 Configuration 区段 Part 1:不要再赖在 appSettings 的屋檐下了,写个自己的 Configuration 区段吧~


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11512843.html