ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用
更新時(shí)間:2007年01月07日 00:00:00 作者:
今天終于開(kāi)始了EnterpriseLibrary的進(jìn)程了,邊看邊學(xué),在這里要感謝TerryLee前輩,看了你的文章得到了不少知識(shí),讓我更容易進(jìn)入狀態(tài)。由于剛剛接觸到這個(gè)咚咚對(duì)他還有點(diǎn)陌生,無(wú)論是哪個(gè)項(xiàng)目配置文件肯定是我們研究的切入點(diǎn),所以首先當(dāng)然是要看看Enterprise Library對(duì)配置文件的一些做法。
安裝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)指正,謝謝!
安裝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)指正,謝謝!
相關(guān)文章
c#中實(shí)現(xiàn)文件拖放打開(kāi)的方法
向ListBox拖入一個(gè)文件,ListBox顯示該文件的路徑,然后單擊該路徑,點(diǎn)擊Open按鈕打開(kāi)該文件2006-10-10asp.net HttpHandler操作Session的函數(shù)代碼
asp.net HttpHandler操作Session的函數(shù)代碼,需要的朋友可以參考下。2011-12-12.Net行為型設(shè)計(jì)模式之訪問(wèn)者模式(Visitor)
這篇文章介紹了.Net行為型設(shè)計(jì)模式之訪問(wèn)者模式(Visitor),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用
ConfiguraionSource節(jié)點(diǎn)及多個(gè)配置文件的應(yīng)用...2007-01-01