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; }[page] }} 3、示例在aspx中用! private void Page_Load(object sender, System.EventArgs e) { Response.Write(Configuration.GetConfig().MyRegionConfig["Region"].ToString()); } configSections的威力很强大。有很多种用法与应用!这里就不再举例了,有问题可与我联系。或在恢复中提出来! 中国.Net俱乐部转载此文。让我们一起进步,共享人类技术资源。[www.chinaaspx.com]
|