首先申明:本文大部分内容来自于http://www.cnblogs.com/guozhijian/
-------------------------
1. 实现目的
    我希望在web.config中,配置网站信息,管理员信息,和用户信息(当然这个配置有点不切实际了,这里只是为了演示),所以,我希望按下面的格式做配置。
asp.net20自定义配置节学习笔记(二)<siteSetting siteName="遇见未来" siteVersion="1.0" closed="false">
asp.net20自定义配置节学习笔记(二)    
<siteAdmin adminId="1" adminName="guozhijian"/>
asp.net20自定义配置节学习笔记(二)    
<siteUsers>
asp.net20自定义配置节学习笔记(二)      
<siteUser userId="1" userName="zhanglanzhen"/>
asp.net20自定义配置节学习笔记(二)      
<siteUser userId="2" userName="wdy"/>
asp.net20自定义配置节学习笔记(二)    
</siteUsers>
asp.net20自定义配置节学习笔记(二)  
</siteSetting>
     这个siteSetting配置节点是一个稍微复杂一点的配置,自己包含有Attributes,同时包含子节点siteAdmin, siteUsers, 而siteUsers又包含多个siteUser子节点。
    接下来我要定义几个类,分别代表各个不同的节点。有一定的规则:
    代表根节点,也就是siteSetting节点的类,继承自ConfigurationSection
    代表单一子节点的siteAdmin, siteUser类,继承自ConfigurationElement
    包含多个同名子节点的siteUsers类,继承自ConfigurationElementCollection
而siteSetting这个配置点需要注册,代码示例如下:
 <configSections>
   <section name="siteSetting" type="处理程序" />
</configSections>
2、实现过程
第一步:实现单一节点的类,也就是代表siteAdmin和siteUser的类:
 1asp.net20自定义配置节学习笔记(二)public class SiteAdmin : ConfigurationElement
 2}
第二步:实现包含多个同名节点(siteUser)的siteUsers类
 1asp.net20自定义配置节学习笔记(二)public class SiteUsers : ConfigurationElementCollection
 2
第三步:实现根节点类
 1asp.net20自定义配置节学习笔记(二)public class SiteSetting : ConfigurationSection
 2}
完成上面的步骤后,就可以在web.config里注册相应的节了。如
 1asp.net20自定义配置节学习笔记(二)<configSections>
 2asp.net20自定义配置节学习笔记(二)    <section name="siteSetting" type="SiteSetting"/>
 3asp.net20自定义配置节学习笔记(二)  </configSections>
 4asp.net20自定义配置节学习笔记(二)  <siteSetting siteName="McJeremy的测试" siteVersion="1.0" closed="false">
 5asp.net20自定义配置节学习笔记(二)      <siteAdmin adminId="11" adminName="McJeremy" />
 6asp.net20自定义配置节学习笔记(二)      <siteUsers>
 7asp.net20自定义配置节学习笔记(二)          <siteUser userId="1" userName="McJeremy" />
 8asp.net20自定义配置节学习笔记(二)          <siteUser userId="2" userName="McJeremy3" />
 9asp.net20自定义配置节学习笔记(二)          <siteUser userId="5" userName="McJeremy4" />
10asp.net20自定义配置节学习笔记(二)      </siteUsers>
11asp.net20自定义配置节学习笔记(二)  </siteSetting>
为siteUsers节点添加一个子节点:
1asp.net20自定义配置节学习笔记(二) Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
2asp.net20自定义配置节学习笔记(二)        SiteSetting myset = config.GetSection("siteSetting"as SiteSetting;
3asp.net20自定义配置节学习笔记(二)        SiteUser user = new SiteUser();
4asp.net20自定义配置节学习笔记(二)        user.UserName = "McJeremy4";
5asp.net20自定义配置节学习笔记(二)        user.UserId = 5;
6asp.net20自定义配置节学习笔记(二)        myset.SiteUsers.Add(user);
7asp.net20自定义配置节学习笔记(二)       // myset.SiteUsers.Remove(6); 删除子节点
8asp.net20自定义配置节学习笔记(二)        config.Save();
9asp.net20自定义配置节学习笔记(二)        addMySettingsResult.Text = "添加成功";
读取siteSettings下的设置:
 1asp.net20自定义配置节学习笔记(二) Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
 2asp.net20自定义配置节学习笔记(二)        SiteSetting myset = config.GetSection("siteSetting"as SiteSetting;
 3asp.net20自定义配置节学习笔记(二)        string msgs = "";
 4asp.net20自定义配置节学习笔记(二)        msgs += "<br />站点信息是:" + myset.SiteName + ",站点版本:" + myset.SiteVersion ;
 5asp.net20自定义配置节学习笔记(二)        SiteAdmin admin = myset.SiteAdmin;
 6asp.net20自定义配置节学习笔记(二)        msgs += "<br />管理员名:" + admin.AdminName;
 7asp.net20自定义配置节学习笔记(二)        msgs += "<br />用户信息:";
 8asp.net20自定义配置节学习笔记(二)        SiteUsers users = myset.SiteUsers;
 9asp.net20自定义配置节学习笔记(二)        foreach(SiteUser user in users)
10 msgs;

相关文章:

  • 2022-02-06
  • 2021-07-11
  • 2022-01-13
  • 2021-12-08
  • 2021-09-22
  • 2021-08-28
猜你喜欢
  • 2021-05-15
  • 2022-12-23
  • 2021-05-16
  • 2021-09-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-18
相关资源
相似解决方案