您的位置:首页 > 其它

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

2005-12-20 12:28 721 查看
.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应用中 访问自己定义

AddPortal ('32956','','','');

AddPortal ('32956','','','');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: