在web.config配置文件中自定义配置节点--

在web.config配置文件中自定义配置节点--

ID:24229375

大小:56.50 KB

页数:4页

时间:2018-11-13

上传者:U-991
在web.config配置文件中自定义配置节点--_第1页
在web.config配置文件中自定义配置节点--_第2页
在web.config配置文件中自定义配置节点--_第3页
在web.config配置文件中自定义配置节点--_第4页
资源描述:

《在web.config配置文件中自定义配置节点--》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

  在Web.config配置文件中自定义配置节点>>摘要:大部分ASP.应用程序都包含很多个配置信息,比较常见的有连接字符串配置ConnectionString;当我们需要用到Login控件自动发送Email时,我们就要配置Email服务器节点;还有很多如Page节点可以引入程序集和命名空间等等。根据我的经验很多网站的初始化信息(默认设置)很多都会保存在数据库中,也有很多保存在配置文件中,他们各有各的优点。我们可以在e。有自己的Providers,以及一个States节点,配置如下:undefinedundefined4</providers>5<states>6<add123456789下一页>>>>这篇文章来自..,。name="厦门"code="0592"/>7<addname="福州"code="0591"/>8<addname="三明"code="0598"/>9</states>10</NExplus>11读取方法:配置文件中就是XML文件,如果是我们自定义地配置文件可以用DotNet读取XML的方法通过序列化和反序列化等来读取,在以后的版本中还可以通过XLinQ来读取。而在.Configuration.IConfigurationSectionHandler接口,这个方法很简单就是实现一个方法,这里就不再多说了。<!--[if!supportLists]-->2.在ASP.2.0中我们已经能够很简单的操作配置文件中的节点了,他为我们提供了一系列的类如我们定义一个类只要继承ConfigurationSection就可以定义我们的节点了,子节点可以继承ConfigurationElement等等。只要在属性上标注ConfigurationPropertyattribute即可。定义配置类:undefinedundefinedundefinedundefined1上一页123456789下一页>>>>这篇文章来自..,。00ff">publicclassCustomConfiguration:ConfigurationSection2{3[ConfigurationProperty("e",DefaultValue="Customconfigurationsectionine 5{6get7{8returnthis["e"]asstring;9}10}11}12以上只列出了读取属性的方法,每一个用ConfigurationPropertyattribute标注的属性就能够自动从e:配置节点名称或属性名称,要求唯一标识。<!--[if!supportLists]--><!--[endif]-->DefaultValue:配置文件中每个属性的默认值,如果配置文件中没有定义此上一页123456789下一页>>>>这篇文章来自..,。属性则在代码中调用此属性时,将取得这个值。<!--[if!supportLists]--><!--[endif]-->IsRequired:标明当前属性是否必须,如果为true而配置文件中并没有定义此属性,当访问此网站时将抛出错误。我们可以通过System.anager来获取此节点的实例,代码如下:undefinedundefined基于集合配置属性的读取:很多时候我们需要得到一个集合的所有配置,最常见的莫过于providers,系统已经为我们准备好了ProviderCollection,我们只要直接引用就好了。但是如果遇到向上面定义的<states>节点的读取就需要我们自己来写一个集合,这个集合要继承ConfigurationElementCollection类,而当前实体类需继承ConfigurationElement类。为了读取<states>节点我们定义一个实体类如下:undefinedundefined>>>这篇文章来自..,。",IsRequired=true)]4publicstringName5{6get7{8returnthis["name"]asstring;9}10}1112[ConfigurationProperty("code",IsRequired=false)]13publicstringCode14{15get16{ 17上一页123456789下一页>>>>这篇文章来自..,。returnthis["code"]asstring;18}19}20}21有了实体类我们当然要写一个集合类,代码如下:undefinedundefined>>>这篇文章来自..,。8}9set10{11if(base.BaseGet(index)!=null)12{13base.BaseRemoveAt(index);14}15this.BaseAdd(index,value);16}17}1819protectedoverrideConfigurationElementCreateNeent()20{21returnnewConfigurationState();22}2324protectedoverrideobject上一页123456789下一页>>>>这篇文章来自..,。GetElementKey(ConfigurationElementelement)25{26return((ConfigurationState)element).Name;27}28}29我们需要对当前集合进行索引读取或设置,重写了两个方法,从而能够获取当前实例和获取当前配置节点的名称等,当然最后一步就是要将它加入到配置类中(次配置类一定要在configSettings节点中标注)。代码如下:undefinedundefined>>>这篇文章来自..,。returnthis["states"]asConfigurationStateCollection;11}12}13}14总结: 这篇文章已经不是什么新鲜的事了,由于最近我也在做这个事情,其中值得说明的是在providers的应用,我们可以通过ProvidersCollection来读取其集合,通过ProvidersHelper来实例化当前provider,如果在你的数据库提供者抽象类中继承ProviderBase类万事就OK了。如果考虑到性能问题可以借助Cache来提高一些性能,最后还是希望能给更多人带来一点帮助,分享一下我的经验。上一页123456789>>>>这篇文章来自..,。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭