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

ASP.NET
[EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
crystal reports for Visual Studio .NET(webformsample)
XML指南:微软的XML解析器
展现C# 清单5.10 生成exe文件执行的问题
vb.net 读写xml方法(1)
选择文件夹的对话框控件c#
特洛伊木马服务器源代码(C#)
上传图片画带阴影的水印.(C#)
vb.net读写xml(2)--实现datagrid与xml的沟通(原创)
列出所有的sheet,然后点击其中的一个,自动跳过去
从VB中的Datagride中向excel导入数据
XML指南:XML CDATA
XML指南:XML编码
XMLDOM对象方法:Document对象方法
XMLDOM对象方法:对象事件
XMLDOM对象方法:对象属性
[一个登录窗体的完整范例,包括登录,密码更改,输入错误三次退出]
[关于判断输入数据是否在数据库中的方法。]
[VBA]office中内建的faceid所对应的图标
web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 249 ::
收藏到网摘: 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类实例来完成我们的操作了。我对这个冬冬也不是很熟,但我想我和他会成为好朋友的,因为我下一个项目准备用这个,虽然不是很大的项目,这样就可以巩固我的知识,呵呵!如果有什么错误请指正,谢谢!