欢迎来到天天文库
浏览记录
ID:21505970
大小:56.50 KB
页数:4页
时间:2018-10-22
《在web.config配置文件中自定义配置节点》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、在Web.config配置文件中自定义配置节点>>教育资源库摘要:大部分ASP.应用程序都包含很多个配置信息,比较常见的有连接字符串配置ConnectionString;当我们需要用到Login控件自动发送Email时,我们就要配置Email服务器节点;还有很多如Page节点可以引入程序集和命名空间等等。根据我的经验很多网站的初始化信息(默认设置)很多都会保存在数据库中,也有很多保存在配置文件中,他们各有各的优点。我们可以在e。有自己的Providers,以及一个States节点,配置如下:undefinedundefined4<
2、/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.I
3、ConfigurationSectionHandler接口,这个方法很简单就是实现一个方法,这里就不再多说了。<!--[if!supportLists]-->2.在ASP.2.0中我们已经能够很简单的操作配置文件中的节点了,他为我们提供了一系列的类如我们定义一个类只要继承ConfigurationSection就可以定义我们的节点了,子节点可以继承ConfigurationElement等等。只要在属性上标注ConfigurationPropertyattribute即可。定义配置类:undefinedundefinedundef
4、inedundefined1上一页123456789下一页>>>>这篇文章来自..,。00ff">publicclassCustomConfiguration:ConfigurationSection2{3[ConfigurationProperty("e",DefaultValue="Customconfigurationsectionine5{6get7{8returnthis["e"]asstring;9}10}11}12以上只列出了读取属性的方法,每一个用ConfigurationPropertyattribute标注的属性就能
5、够自动从e:配置节点名称或属性名称,要求唯一标识。<!--[if!supportLists]--><!--[endif]-->DefaultValue:配置文件中每个属性的默认值,如果配置文件中没有定义此上一页123456789下一页>>>>这篇文章来自..,。属性则在代码中调用此属性时,将取得这个值。<!--[if!supportLists]--><!--[endif]-->IsRequired:标明当前属性是否必须,如果为true而配置文件中并没有定义此属性,当访问此网站时将抛出错误。我们可以通过System
6、.anager来获取此节点的实例,代码如下:undefinedundefined基于集合配置属性的读取:很多时候我们需要得到一个集合的所有配置,最常见的莫过于providers,系统已经为我们准备好了ProviderCollection,我们只要直接引用就好了。但是如果遇到向上面定义的<states>节点的读取就需要我们自己来写一个集合,这个集合要继承ConfigurationElementCollection类,而当前实体类需继承ConfigurationElement类。为了读取<states>节点我们定义一个实体类如下
7、: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有了实体类我们当然要写一
8、个集合类,代码如下:undefinedundefined>>>这篇文章来自..,。8}9set10{11if(base.BaseGet(index)!=null)12{13base.BaseRemoveAt
此文档下载收益归作者所有