.net 如何在web.config中读取自定义节点以及注意的问题
2024-07-10 13:01:11
供稿:网友
这几天在做一个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应用中 访问自己定义的节点了。