当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ConfiguraionSource节点及多个配置文件的应用

ASP.NET
用 Asp.Net 建立一个在线 RSS 新闻聚合器的方法
关于前台调用后台事件__doPostBack函数
Bin 和 App_Code 文件夹介绍
.NET 2.0 的压缩功能代码
解决Visual Studio 2005 无法显示设计视图的方法
asp.net(c#)两种随机数的算法,可用抽考题
asp.net下url传递中文的解决方案
XmlReader 读取器读取内存流 MemoryStream 的注意事项
asp.net下创建、查询、修改带名称空间的 XML 文件的例子
使用.NET存储XML数据的方法
XslTransform.Transform将结果输出到字符串里的方法
安装 VS2005 SP1 有关问题的解决办法
asp.net下中文验证码,免费开源代码
自定义应用程序配置文件(app.config)
asp.net下使用DIME协议上传文件
动态改变ASP.net页面标题和动态指定页面样式表的方法
WEB上调用HttpWebRequest奇怪问题的解决方法
HTTP协议下用Web Service上传大文件的解决方案
asp.net下Response.ContentType类型汇总
ASP.NET User Control使用技巧一则

ASP.NET 中的 ConfiguraionSource节点及多个配置文件的应用


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 90 ::
收藏到网摘: n/a

今天终于开始了EnterpriseLibrary的进程了,边看边学,在这里要感谢TerryLee前辈,看了你的文章得到了不少知识,让我更容易进入状态。由于刚刚接触到这个咚咚对他还有点陌生,无论是哪个项目配置文件肯定是我们研究的切入点,所以首先当然是要看看Enterprise Library对配置文件的一些做法。
安装EnterpriseLibrary后,VS中的配置文件就默认用它带的Enterprise Library Configration来打开,为了看看配置文件Web.config的变化用源文件格式打开,后来再用那个打开就会出错:“尝试读取或写入受保护的内存。通常指示其他内存已损害。”如果有知道的同学请告诉我一下,谢谢啦!在TerryLee的文章中发现有一个Configuration Application Block,但是在现在的这个版本或是2.0版本就没有这个节点了,只有Configuraion Sources,而这个节点包含两个子节点:File Configuration Source和System Configuration Source,默认的是System Configuration Source也就是Web.config或App.config配置文件。
默认时我们可以通过SystemConfigurationSource类来完成,该类继承自IConfigurationSource接口。通过GetSection()等方法可以对其进行操作,值得一提的是在EnterpriseLibrary中对配置的文件读取是进行缓存的,当然我们在更改配置文件后要通知系统消除缓存重新读取并缓存。其实我们更本不需要知道他是怎么缓存的,只要告诉他我们已经更改了配置文件。由于我还没有很明白其中的道理所以在这也不能把整个机理说出来,其实在默认配置时我们基本不要管他,例如我们可以直接用Data Access Application Block中的DataProviderFactory来创建一个抽象的Database实例,而EnterpriseLibrary已经封装好了整个过程。
如果我们要用FileConfigurationSource当然也是要用这个类来读取配置文件中的信息了,我对这个比较感兴趣,就像前几天有个人问我为什么不喜欢Session一样,这是说不出来的,可能和我这个人有点关系。不喜欢并不是不用或不会用,我们都是懒人,那个简单就用那个吗?嗬嗬!在我现在有限的资源内,好像要将配置放在其他文件中,肯定要有Web.config和App.config文件的存在,并且配置其他配置文件的文件名称和Provider。下面我们以连接字符串为例子来看看对Data.config文件的读取是怎么样的。如果把这个选项配置成默认则就可以直接通过DataProviderFactory来完成,如果不是就要通过下来代码来创建:
FileConfigurationSource source = new FileConfigurationSource("Data.config");
DatabaseProviderFactory dbFactory = new DatabaseProviderFactory(source);
Database db = dbFactory.Create("ConnectionStringName");
这样我们就得到了Database类实例来完成我们的操作了。我对这个冬冬也不是很熟,但我想我和他会成为好朋友的,因为我下一个项目准备用这个,虽然不是很大的项目,这样就可以巩固我的知识,呵呵!如果有什么错误请指正,谢谢!