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

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

这几天在做一个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应用中 访问自己定义

你可能感兴趣的:(.net 如何在web.config中读取自定义节点以及注意的问题(转))