.net 如何在web.config中读取自定义节点以及注意的问题

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

这几天在做一个urlMapping类库的时候用到了如何读取web.config中自定义节点, 做完后觉得挺好 现就制作过程叙述一下。

web.config文件在web application中起着非常重要的作用。 它本身包含了授权,handler,compilation,globalization,错误与跟踪等一系列设置。但是当你需要一些特殊的或者想添加自己的settings时,应该如何做呢?

要创建自定义设置 要求有2步:写cs代码 和 修改web.config

代码

这里我们创建了一个简单的handler , 此handler 用在web.config文件中。

using System; using System.Collections; using System.Xml; using System.Configuration; using System.Web.Configuration; namespace Devhood { internal class PageStyleHandler:IConfigurationSectionHandler { public virtual object Create(Object parent, Object context, XmlNode node) { PageStyle config = new PageStyle((PageStyle)parent); config.LoadValuesFromConfigurationXml(node); return config; } } public class PageStyle { string _backColour; internal PageStyle(PageStyle parent) { if (parent != null) _backColour = parent._backColour; } internal void LoadValuesFromConfigurationXml(XmlNode node) { XmlAttributeCollection attribCol = node.Attributes; _backColour = attribCol["backColour"].Value; } public string BackColour { get { return _backColour; } } } }

这里有两个类:继承IConfigurationSectionHandler接口的PageStyleHandler类 和 用于从webconfig返回数据的PageStyle类。PageStyle 类可以读取一个XML 节点(自web.config)并且把节点数据保存的BackColour属性中。

设置Web.config文件

为了能够访问PageStyleHandler必须对web.config做相应的配置。

<configuration> <configSections> <sectionGroup name="devhood"> <section name="pageStyle" type="Devhood.PageStyleHandler, PageStyle" /> sectionGroup> configSections> <devhood> <pageStyle backColour="navy" /> devhood> configuration>

这样就可以在你的web应用中 访问自己定义的节点了。

注意 用到的assembly必须在bin文件夹下面 不管是自己写的还是系统的(如:system.dll)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航