2012-01-22 13 views
0

我已經實現了一個基於磁盤的緩存,並且還希望啓用它以輸出緩存usercontrols。我讀過,我不能使用基於磁盤的輸出緩存提供程序用於usercontrols,但只能輸出緩存整個頁面。將用戶控件輸出緩存到內存以外的東西

是否有可能以某種其他方式輸出將用戶控件存儲到磁盤或輸出到其他存儲類型(db)?

感謝 托馬斯

回答

0

ASP.Net 4.0添加輸出緩存擴展性。你可以通過創建一個輸出緩存提供程序來完成。用斯科特的話說,

輸出緩存提供者可以使用任何存儲機制來保存輸出緩存的內容。這使得使用任何持久性機制(包括本地或遠程磁盤,數據庫,雲存儲和分佈式緩存引擎(如memcached或速度))可以輕鬆創建存儲緩存內容的輸出緩存提供程序。

您通過繼承 OutputCacheProvider基類創建一個輸出緩存提供。

一旦你創建了緩存提供者,你可以在你的web.config文件中對其進行註冊:

<caching> 
    <outputCache defaultProvider="MyCustomCacheProvider"> 
    <providers> 
     <add name="MyCustomCacheProvider" type="CustomCacheProvider" /> 
     </providers> 
    </outputCache> 
</caching> 

當你把一個OutputCache指令用戶控件的ASCX頁:

<%@ OutputCache Duration="120" VaryByParam="None" %> 

您應該可以使用此自定義緩存提供程序來進行用戶控制。

欲瞭解更多信息,請參閱Scott Gu's excellent blog post