2016-11-23 49 views
0

我winform應用程序,我公開了一個WCF服務,它託管在服務器上的IIS上,並且裏面有大約10種方法。我們可以在WCF應用程序中獲取緩存數據的第一個事件是什麼?

在計算所有10種方法時,我需要一些常用數據。我想要的只是在服務啓動時將這些公共數據取出並放入緩存中,以便所有方法都可以從此緩存中獲取數據,而不是從數據庫中獲取數據。

我可以做的一件事是檢查是否有緩存可用,是不是然後獲取它,否則使用現有的。但是我必須在所有暴露的方法中這樣做,因爲我不知道哪些方法會先被調用。所以需要一個乾淨而簡短的方法來做到這一點。

有沒有辦法實現它?

+0

你目前用於緩存的是什麼?什麼都可以? –

+0

我們有一些靜態類,我們將數據推送到它們的靜態變量,以便我們稍後可以讀取它們。這就是我們的緩存。 – sunil20000

+1

那麼最簡單的方法就是將初始化方法添加到這些靜態類並在服務啓動時運行它們。我使用MemoryCache,而不是靜態類(https://msdn.microsoft.com/en-us/library/system.runtime.caching.memorycache(v=vs.110).aspx)。對於重量輕的東西來說,這聽起來像你可能在這裏。它內置於.Net,並且很容易處理。 –

回答

0

我找到了我這個問題的簡單解決方案。在Cache類中,我添加了一個靜態構造函數,並在那裏編寫了獲取緩存數據的代碼。衆所周知,靜態構造函數只能調用一次,不能被明確調用。因此,只要我們嘗試讀取Cache類的任何變量(所有變量都是靜態變量來保存緩存數據),我們的靜態構造函數就會自動調用,並將緩存數據填充到相應的靜態變量中。

相關問題