欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ConfiguraionSource节点及多个配置文件的应用

程序员文章站 2022-07-19 12:09:26
今天终于开始了enterpriselibrary的进程了,边看边学,在这里要感谢terrylee前辈,看了你的文章得到了不少知识,让我更容易进入状态。由于刚刚接触到这个咚咚...
今天终于开始了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类实例来完成我们的操作了。我对这个冬冬也不是很熟,但我想我和他会成为好朋友的,因为我下一个项目准备用这个,虽然不是很大的项目,这样就可以巩固我的知识,呵呵!如果有什么错误请指正,谢谢!