实现IConfigurationSectionHandler接口来编写自定义配置

发布于 2022-09-02 05:21:47 字数 5136 浏览 6 评论 0

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.Configuration;
  6. using System.Xml;
  7. namespace Beyondbit.Portal.ConfigService {
  8.     public class TopMenuConfigItem {
  9.         public string Text;
  10.         public string Value;
  11.         public string Url;
  12.         public string Description;
  13.     }
  14.     public class TopMenuConfig : IConfigurationSectionHandler {
  15.         private IList<TopMenuConfigItem> topMenus;
  16.         public IList<TopMenuConfigItem> TopMenus {
  17.             get {
  18.                 return topMenus;
  19.             }
  20.         }
  21.         public static TopMenuConfig Instance() {
  22.             return ConfigurationManager.GetSection("TopMenuConfig") as TopMenuConfig;
  23.         }
  24.         #region IConfigurationSectionHandler Members
  25.         object IConfigurationSectionHandler.Create(object parent, object configContext, XmlNode section) {
  26.             XmlNode node = section;
  27.             topMenus = new List<TopMenuConfigItem>(node.ChildNodes.Count);
  28.             TopMenuConfigItem m = null;
  29.             foreach (XmlNode n in node.ChildNodes) {
  30.                 if (n.NodeType != XmlNodeType.Comment) {
  31.                     m = new TopMenuConfigItem();
  32.                     m.Description = n.Attributes["Description"].Value;
  33.                     m.Text = n.Attributes["Text"].Value;
  34.                     m.Url = n.Attributes["Url"].Value;
  35.                     m.Value = n.Attributes["Value"].Value;
  36.                     topMenus.Add(m);
  37.                 }
  38.             }
  39.             return this;
  40.         }
  41.         #endregion
  42.     }
  43. }
  44. Web.config如下:
  45. <?xml version="1.0"?>
  46. <configuration>
  47. </configSections>
  48.     <section name="TopMenuConfig" type="Beyondbit.Portal.ConfigService.TopMenuConfig,Beyondbit.Portal.ConfigService" />
  49.   </configSections>
  50. <TopMenuConfig>
  51.     <topMenu Text=" 邮件 " Value="ExchangeMail" Url="http://mail.pudong.sh/owa/?cmd=contents" Description="http://www.blog.com.cn/ 邮 件 " />
  52.     <topMenu Text=" 通讯录 " Value="link" Url="http://contact.pudong.sh/web/Contact/ContactMain.aspx" Description="http://www.blog.com.cn/通讯录" />
  53.     <topMenu Text=" 共享日历 " Value="calendar" Url="http://calendar.pudong.sh/web/calendar/calendarmain.aspx" Description="http://www.blog.com.cn/共享日历" />
  54.     <topMenu Text=" 短信息 " Value="sms" Url="http://sms.pudong.sh/Web/User/SmsSend.aspx" Description="http://www.blog.com.cn/短信息" />
  55.     <topMenu Text=" 会议通知 " Value="meeting" Url="http://meeting.pudong.sh/tasks/tasklist.aspx" Description="http://www.blog.com.cn/会议通知" />
  56.   </TopMenuConfig>
  57.   <appSettings />
  58. <system.web>
  59. </system.web>
  60. </configuration>

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文