zoukankan      html  css  js  c++  java
  • 实现IConfigurationSectionHandler接口来编写自定义配置

    发表时间:2008-4-4 10:55:00

    代码如下:
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Text;
    using System.Configuration;
    using System.Xml;


    namespace Beyondbit.Portal.ConfigService {
        public class TopMenuConfigItem {
            public string Text;
            public string Value;
            public string Url;
            public string Description;
        }

        public class TopMenuConfig : IConfigurationSectionHandler {

            private IList<TopMenuConfigItem> topMenus;
            public IList<TopMenuConfigItem> TopMenus {
                get {
                    return topMenus;
                }
            }

            public static TopMenuConfig Instance() {
                return ConfigurationManager.GetSection("TopMenuConfig") as TopMenuConfig;
            }

            #region IConfigurationSectionHandler Members

            object IConfigurationSectionHandler.Create(object parent, object configContext, XmlNode section) {
                XmlNode node = section;
                topMenus = new List<TopMenuConfigItem>(node.ChildNodes.Count);

                TopMenuConfigItem m = null;
                foreach (XmlNode n in node.ChildNodes) {
                    if (n.NodeType != XmlNodeType.Comment) {
                        m = new TopMenuConfigItem();
                        m.Description = n.Attributes["Description"].Value;
                        m.Text = n.Attributes["Text"].Value;
                        m.Url = n.Attributes["Url"].Value;
                        m.Value = n.Attributes["Value"].Value;
                        topMenus.Add(m);
                    }
                }

                return this;
            }

            #endregion
        }
    }


    Web.config如下:
    <?xml version="1.0"?>
    <configuration>
     </configSections>
        <section name="TopMenuConfig" type="Beyondbit.Portal.ConfigService.TopMenuConfig,Beyondbit.Portal.ConfigService" />
      </configSections>

    <TopMenuConfig>
        <topMenu Text=" 邮件 " Value="ExchangeMail" Url="http://mail.pudong.sh/owa/?cmd=contents" Description="http://www.blog.com.cn/ 邮 件 " />
        <topMenu Text=" 通讯录 " Value="link" Url="http://contact.pudong.sh/web/Contact/ContactMain.aspx" Description="http://www.blog.com.cn/通讯录" />
        <topMenu Text=" 共享日历 " Value="calendar" Url="http://calendar.pudong.sh/web/calendar/calendarmain.aspx" Description="http://www.blog.com.cn/共享日历" />
        <topMenu Text=" 短信息 " Value="sms" Url="http://sms.pudong.sh/Web/User/SmsSend.aspx" Description="http://www.blog.com.cn/短信息" />
        <topMenu Text=" 会议通知 " Value="meeting" Url="http://meeting.pudong.sh/tasks/tasklist.aspx" Description="http://www.blog.com.cn/会议通知" />
      </TopMenuConfig>
      <appSettings />
     <system.web>
     </system.web>
    </configuration>

  • 相关阅读:
    JavaScript设计模式与开发实践——读书笔记1.高阶函数(下)
    JavaScript设计模式与开发实践——读书笔记1.高阶函数(上)
    js 去除字符串中的空格
    js 运算符 || && 妙用
    判断一个js对象是不是数组
    Javascript中的异步
    js异步处理工作机制(setTimeout, setInterval)
    移动端html页面优化
    编写高效的jQuery代码
    JavaScript学习笔记 isPrototypeOf和hasOwnProperty使用区别
  • 原文地址:https://www.cnblogs.com/yuanxiaoping_21cn_com/p/1446246.html
Copyright © 2011-2022 走看看