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

ASP.NET
如果操作EXCEL提示没有权限?
不让别人保存你的网页
从C#转到VB .net
创建虚拟目录的常用属性
visual studio 2005又一新增功能
Com与.Net互操作(二次业务开发及插件开发总结)
Wap页面使用asp.net中移动控件List分页(原创)
关于如何操作其他窗体的控件或变量的方法!
C#版MultiSelected DataGrid
使用非托管代码直接修改字符串
如何让一个函数返回多个值(C#)
(原创)C#编写的windows计算器----源代码
(原创)C#获取本地计算机名,IP,MAC地址
用C#读取sina天气预报到wap页面(一)(原创)
窗体问题--拖动无标题栏的窗体
写在VB.NET公共论坛的开篇语!
在VB6中动态创建使用ADO控件访问数据库
使用Visual Basic 6实现真正实用的多线程处理
设计模式之Facade:家庭篇
如何设置tabcontrol控件的tabPage的text内容显示成竖着的字体

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


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