现在的位置: 首页 > 综合 > 正文

web应用中 访问自己定义的节点

2013年10月09日 ⁄ 综合 ⁄ 共 1518字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.