|
安裝EnterpriseLibrary后,VS中的配置文件就默認(rèn)用它帶的Enterprise Library Configration來(lái)打開(kāi),為了看看配置文件Web.config的變化用源文件格式打開(kāi),后來(lái)再用那個(gè)打開(kāi)就會(huì)出錯(cuò):“嘗試讀取或?qū)懭胧鼙Wo(hù)的內(nèi)存。通常指示其他內(nèi)存已損害?!比绻兄赖耐瑢W(xué)請(qǐng)告訴我一下,謝謝啦!在TerryLee的文章中發(fā)現(xiàn)有一個(gè)Configuration Application Block,但是在現(xiàn)在的這個(gè)版本或是2.0版本就沒(méi)有這個(gè)節(jié)點(diǎn)了,只有Configuraion Sources,而這個(gè)節(jié)點(diǎn)包含兩個(gè)子節(jié)點(diǎn):File Configuration Source和System Configuration Source,默認(rèn)的是System Configuration Source也就是Web.config或App.config配置文件。
默認(rèn)時(shí)我們可以通過(guò)SystemConfigurationSource類(lèi)來(lái)完成,該類(lèi)繼承自IConfigurationSource接口。通過(guò)GetSection()等方法可以對(duì)其進(jìn)行操作,值得一提的是在EnterpriseLibrary中對(duì)配置的文件讀取是進(jìn)行緩存的,當(dāng)然我們?cè)诟呐渲梦募笠ㄖ到y(tǒng)消除緩存重新讀取并緩存。其實(shí)我們更本不需要知道他是怎么緩存的,只要告訴他我們已經(jīng)更改了配置文件。由于我還沒(méi)有很明白其中的道理所以在這也不能把整個(gè)機(jī)理說(shuō)出來(lái),其實(shí)在默認(rèn)配置時(shí)我們基本不要管他,例如我們可以直接用Data Access Application Block中的DataProviderFactory來(lái)創(chuàng)建一個(gè)抽象的Database實(shí)例,而EnterpriseLibrary已經(jīng)封裝好了整個(gè)過(guò)程。
如果我們要用FileConfigurationSource當(dāng)然也是要用這個(gè)類(lèi)來(lái)讀取配置文件中的信息了,我對(duì)這個(gè)比較感興趣,就像前幾天有個(gè)人問(wèn)我為什么不喜歡Session一樣,這是說(shuō)不出來(lái)的,可能和我這個(gè)人有點(diǎn)關(guān)系。不喜歡并不是不用或不會(huì)用,我們都是懶人,那個(gè)簡(jiǎn)單就用那個(gè)嗎?嗬嗬!在我現(xiàn)在有限的資源內(nèi),好像要將配置放在其他文件中,肯定要有Web.config和App.config文件的存在,并且配置其他配置文件的文件名稱(chēng)和Provider。下面我們以連接字符串為例子來(lái)看看對(duì)Data.config文件的讀取是怎么樣的。如果把這個(gè)選項(xiàng)配置成默認(rèn)則就可以直接通過(guò)DataProviderFactory來(lái)完成,如果不是就要通過(guò)下來(lái)代碼來(lái)創(chuàng)建:
FileConfigurationSource source = new FileConfigurationSource("Data.config");
DatabaseProviderFactory dbFactory = new DatabaseProviderFactory(source);
Database db = dbFactory.Create("ConnectionStringName");
這樣我們就得到了Database類(lèi)實(shí)例來(lái)完成我們的操作了。我對(duì)這個(gè)冬冬也不是很熟,但我想我和他會(huì)成為好朋友的,因?yàn)槲蚁乱粋€(gè)項(xiàng)目準(zhǔn)備用這個(gè),雖然不是很大的項(xiàng)目,這樣就可以鞏固我的知識(shí),呵呵!如果有什么錯(cuò)誤請(qǐng)指正,謝謝!
AspNet技術(shù):ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。