天天看點

我的KT庫之-----緩存與配置

了解或者認識KT:

<a href="http://www.cnblogs.com/kingthy/archive/2011/08/08/2130973.html">http://www.cnblogs.com/kingthy/archive/2011/08/08/2130973.html</a>

在項目中如何使用KT?

KT是一個庫,是以将KT的dll檔案引用到您的項目上即可使用KT裡的函數功能。

本節将介紹大家認識KT庫裡的緩存與配置。它們都存放在“KT.Core“下,當你已在你的項目裡引用了KT庫後,則寫下以下代碼就可以使用到KT裡的緩存與配置對象了。

緩存

KT的緩存隻是簡單的對.NET的緩存Cache進行了一個簡單的包裝,以便更友善的使用。

1、增加一個緩存項:

2、删除緩存項

3、擷取某個緩存項

配置

平時在項目開發中,參數配置都習慣在項目配置檔案(app.config或web.config)的AppSettings節點中配置,比如以下示例:

程式代碼裡要使用參數時,直接調用即可,如下代碼:

如果我們的參數非常的多,這将會導緻我們的項目配置檔案非常的大。并且如果在web項目中,我們的配置參數在運作過程中需要更改,則将會導緻我們的web站點應用程式的重新開機!對于正常運作的項目來說,程式的重新開機是希望不要發生的,因為這将會導緻session的丢失等相關問題。雖然我們可以在appSettings節點裡使用file屬性采用外部檔案來配置避免這問題,但在某些場合下,file屬性卻是無能為力了。比如需要分多個配置檔案存儲不同的資料,file屬性是無法做到的。

KT的配置

1、KT的配置檔案

KT的配置檔案,預設存儲于程式根目錄下的config目錄,當然,你也可以自定義配置的存儲路徑,比如在app.config或web.config裡的AppSettings節點裡配置以下設定。

如果未設定則預設是程式的根目錄(Web應用程式則是站點根目錄;Windows應用程式則是可執行檔案所在的目錄)下的config目錄

KT的配置檔案采用的是标準xml檔案,如下示例:

上面配置中,共定義了4個參數。其中k1參數的定義同.net裡的appSettings一樣,通過&lt;add&gt;節點元素定義;其它的參數都是采用節點形式定義。

KT的配置檔案有兩個特殊的節點&lt;add&gt;與&lt;include&gt;節點。

1、&lt;add&gt;節點:如果定義此節點,并且帶有“key”屬性,則表示增加一個參數,參數值由“value”屬性定義。如果定義此節點,但不帶有任何屬性,則看作普通的參數"add”對待。如下面示例:

共定義了“k1”與“add”兩個參數。

2、&lt;include&gt;節點:如果定義此節點,并且帶有“file”屬性,則表示是引用相關的配置檔案。否則如果不帶有任何屬性,則看作普通的參數“include”對待。如下面示例:

共導入了“mysettings.xml”與“c:\config\mysettings2.xml”兩個配置檔案裡的配置參數,并且還定義了一個“include”參數,其中file屬性的值可以是相對路徑或絕對路徑,如果是相對路徑則是“相對于目前配置檔案所在的路徑”。

所有參數的節點都可以重複定義,但參數最終的值将由最後一個定義節點決定(注:“&lt;include file=””&gt;”節點是例外),即最後定義的将覆寫先前定義的值。如下示例:

最終,“k1"的值是“2”。

2、配置參數的擷取

參數的擷取是通過KT.Core.Settings執行個體類擷取,此類共有幾個靜态方法和屬性。

A、BasePath : 傳回存儲配置檔案所在的基路徑。此值可以通過上面所說的方法,在appSettings裡修改。預設是程式根目錄下的config目錄.

B、Default : 傳回預設存儲配置檔案的所有配置參數值。此預設配置參數存儲于基路徑下的"settings.config"檔案。

C、From : 從配置檔案擷取配置參數。配置檔案可以是相對路徑或絕對路徑,如果是相對路徑則相對于BasePath。

D、Get&lt;T&gt;: 從配置檔案擷取配置參數并映射為某個實體類。配置檔案可以是相對路徑或絕對路徑,如果是相對路徑則相對于BasePath。

假如以下配置存儲在基路徑下的settings.config檔案

那我們可以這樣擷取參數“k1”、“k2”、“k.name”的值

如果我們配置檔案不是預設的“settings.config”檔案,那我們可以這樣擷取配置

如果我們的配置檔案結構可以映射為某個類,比如上面的配置檔案可以映射為以下類結構

那我們還可以直接通過Get&lt;T&gt;方法直接擷取配置實體類,如下面的示例:

由于AppSettings裡的屬性“K”是一個“KItem”類型,是以KT将會自動将“&lt;k.name&gt;”和“&lt;k.age&gt;”這兩個節點映射為“KItem”類型的值.

注:KT的配置都已啟用緩存功能,是以不需要擔心它的效率問題。

我們可以用KT的配置做什麼?

A、各應用程式之間的配置可以互相獨立存放。 比如在WEB環境下,同一個站點下有多個不同的WEB應用程式,如論壇、部落格、接口服務等等,那我們可以将它們的配置分别以不同的檔案名存放于“基路徑”下,如“forum.config”, “blog.config”,"service.config“,再調用From或Get&lt;T&gt;方法讀取不同的檔案名即可。

B、各應用程式之間的配置可以共享使用。比如上面例子所說的,如果“論壇”程式要調用“部落格”裡的參數,則我們可以在論壇的配置參數裡加入“&lt;include file=“blog.config”&gt;”節點引入“部落格”的配置參數。

C、各應用程式的配置可以統一存放。比如在WEB環境下,我們有A、B、C三個站點,這三個站點都需要用到同一個資料庫,于是我們分别在這三個站點下寫了一個同樣使用者名與密碼的“ConnectionString“配置參數,當某一天,我們修改了資料庫的使用者密碼,那我們就要分别打開這三個站點的目錄去修改“ConnectionString”配置參數。而如果我們将A、B、C三個站點的KT配置的基路徑設定為同一個目錄,那我們就隻要打開一個目錄就可以修改到三個站點的參數了。

本文轉自Kingthy部落格園部落格,原文連結:http://www.cnblogs.com/kingthy/archive/2011/08/16/2140410.html,如需轉載請自行聯系原作者