2011-02-19 132 views
0

我創建了可從Windows或Web應用程序使用的類庫。 應該從類庫中大多數方法中的那些調用應用程序的app.config或web.config中讀取類庫所需的一些設置。 爲了提高性能,我想緩存一些如何這些設置信息爲每個應用程序。如何在應用程序庫中緩存/存儲應用程序設置

我們該怎麼做?一個建議是使用HttpRuntime.Cache對象。另一種方法可以是使用一些靜態變量來存儲數據,但它可能具有的AppDomain /範圍衝突的問題..

所以,我不知道什麼是這樣做的最好的方式(請注意,它是一個通用類可以從Windows或Web應用程序中使用)

+0

請注意,我應該在配置設置上做一些處理以獲得我實際需要使用的內容,這可能會非常耗時!例如創建一個基於數據庫提供者名稱或類似問題的DbFactory .. – smaildeveloper 2011-02-20 07:11:30

回答

0

您確定在調用App.config成員時存在性能問題,還是僅僅是猜測?
Config訪問器實際上並不執行你的配置類中的I/O,如果編譯得當,因爲它們會生成編譯屬性,所以我認爲這沒什麼問題,我懷疑你會從緩存中獲得性能。

+0

你在某種程度上關於配置訪問是正確的,但是我應該在配置設置上做一些處理以獲得我實際需要使用的內容,這可能非常耗時!例如根據數據庫提供者名稱或類似問題創建一個DbFactory .. – smaildeveloper 2011-02-20 07:08:03

0

我在調用者的.config文件中是否應該存儲類庫設置或者是否應該在實例化時將該配置信息傳遞給類庫時發生過很多內部衝突。一種解決方案是改變你的類庫,以便在創建時獲取它的配置信息(調用應用程序仍然可以從它的.config中產生這個)。這樣你可以讓調用應用程序控制配置數據的緩存。

例如 - web應用程序爲每個請求讀取其web.config並將其作爲配置對象傳遞,而Windows應用程序將其app.config讀取到配置對象中,並將其存儲在某個位置,以便可以持續重新實例化庫而不需要重新讀取它的app.config。

相關問題