标题: 获取配置文件中configSections的配置信息
lonjew
元帅
Rank: 1



UID 73191
精华 1
积分 30615
帖子 14941
威望 3
金币 14931
热心 12
阅读权限 100
注册 2008-1-28
状态 离线
获取配置文件中configSections的配置信息

  首先要注意的一点是!configSections关联的类型在一个进程内只实例化一次,
  
  1、配置文件Web.config
  
  <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
   <configSections>
   <section name="xinyulou" type="Config.ConfigurationHandler, Config" />
   </configSections>
  
   <xinyulou> 
   <add name="Region" value = "心雨楼" />
   </xinyulou>
  
   <system.web> 
   <compilation defaultLanguage="c#" debug="true" />
   <customErrors mode="RemoteOnly" />
   <authentication mode="Windows" />
   <authorization>
    <allow users="*" /> <!-- <sectionGroup name="xinyulou"> 允许所有用户 -->
   </authorization>
   <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
   <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
    cookieless="false" timeout="20" />
   <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
   </system.web>
  
  </configuration>
  
  2、两个重要的类
  
  using System;
  using System.Configuration;
  using System.Collections;
  using System.Xml;
  
  namespace Config
  {
   public class Configuration
   {
   private Hashtable m_MyRegionConfig = new Hashtable();
   public Hashtable MyRegionConfig
   {
    get {return m_MyRegionConfig;}
  
   }
   public static Configuration GetConfig()
   {
    return (Configuration) ConfigurationSettings.GetConfig("xinyulou");
   }
   internal void LoadValuesFromConfigurationXml(XmlNode node)
   {
   
    foreach (XmlNode child in node.ChildNodes)
    {
    m_MyRegionConfig.Add(child.Attributes["name"].Value,child.Attributes["value"].Value); 
    }
  
   }
  
   }
  
   internal class ConfigurationHandler : IConfigurationSectionHandler
   {
  
   public virtual object Create(Object parent, Object context, XmlNode node)
   {
    Configuration config = new Configuration();
    config.LoadValuesFromConfigurationXml(node);
    return config;
   }
  
   }
  }
  
  3、示例在aspx中用!
  
  private void Page_Load(object sender, System.EventArgs e)
   {
    Response.Write(Configuration.GetConfig().MyRegionConfig["Region"].ToString());
   }

顶部
[广告] 免费域名(Free Subdomain) 免费空间(Free hosting) PR查询(Google Pagerank)



当前时区 GMT+8, 现在时间是 2008-8-30 15:06
信产部ICP备案:京ICP备05066424号 北京市公安局网监备案:1101050648号

Powered by Discuz! 5.5.0
清除 Cookies - 联系我们 - 网友俱乐部 - Archiver - WAP