快速业务通道

通过继承ConfigurationSection,在web.config中增加自定义配置

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-11

1. 实现目的
   我希望在web.config中,配置网站信息,管理员信息,和用户信息(当然这个配置有点不切实际了,这里只是为了演示),所以,我希望按下面的格式做配置。
  <siteSetting siteName="遇见未来" siteVersion="1.0" closed="false">
   <siteAdmin adminId="1" adminName="guozhijian"/>
   <siteUsers>
   <siteUser userId="1" userName="zhanglanzhen"/>
   <siteUser userId="2" userName="wdy"/>
   </siteUsers>
   </siteSetting> 这个siteSetting配置节点是一个稍微复杂一点的配置,自己包含有Attributes,同时包含子节点siteAdmin, siteUsers, 而siteUsers又包含多个siteUser子节点。
   接下来我要定义几个类,分别代表各个不同的节点。有一定的规则:
   代表根节点,也就是siteSetting节点的类,继承自ConfigurationSection类
   代表单一子节点的siteAdmin, siteUser类,继承自ConfigurationElement类
   包含多个同名子节点的siteUsers类,继承自ConfigurationElementCollection类
  2. SiteAdmin类
   public class SiteAdmin : ConfigurationElement
   {
   [ConfigurationProperty("adminId", IsRequired=true)]
   public int AdminId {
   get { return Convert.ToInt32(this["adminId"]); }
   set { this["adminId"] = value; }
   }
   [ConfigurationProperty("adminName")]
   public string AdminName {
   get { return this["adminName"] as string; }
   set { this["adminName"] = value; }
   }
   } 注意ConfigurationPropertyAttribute,和this关键字,很明显在基类中定义了索引器。本文并不想对这些做过多探讨,直接以代码展示。
  3. SiteUser类
   public class SiteUser : ConfigurationElement {
  
   [ConfigurationProperty("userId",IsRequired=true)]
   public int UserId {
   get { return Convert.ToInt32(this["userId"]); }
   set { this["userId"] = value; }
   }
   [ConfigurationProperty("userName")]
   public string UserName {
   get { return this["userName"] as string; }
   set { this["userName"] = value; }
   }
   }
  4. SiteUsers类
  public class SiteUsers : ConfigurationElementCollection {
  
   protected override ConfigurationElement CreateNewElement() {
   return new SiteUser();
   }
  
   protected override object GetElementKey(ConfigurationElement element) {
   SiteUser siteUser = element as SiteUser;
   return siteUser.UserId;
   }
  
   public override ConfigurationElementCollectionType Coll

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号