簡體   English   中英

dotnet System.Web.Caching.Cache vs System.Runtime.Caching.MemoryCache

[英]dotnet System.Web.Caching.Cache vs System.Runtime.Caching.MemoryCache

我有一個類需要將數據存儲在緩存中。 最初我在asp.net應用程序中使用它,所以我使用了System.Web.Caching.Cache。

現在我需要在Windows服務中使用它。 現在,據我所知,我不應該在非asp.net應用程序中使用asp.net緩存,所以我正在調查MemoryCache。

問題是它們不兼容,所以要么改為在asp.net應用程序中使用MemoryCache,要么我需要創建一個適配器,以確保兩個緩存實現具有相同的接口(可能派生自ObjectCache並使用內部的asp.net緩存?)

在asp.net中使用MemoryCache有什么含義?

Nadav

我會選擇你的第二個選項並稍微重構一下。 我會創建一個接口和兩個提供程序(它們是您的適配器):

public interface ICachingProvider
{
    void AddItem(string key, object value);
    object GetItem(string key);
}

public AspNetCacheProvider : ICachingProvider
{
    // Adapt System.web.Caching.Cache to match Interface
}

public MemoryCacheProvider : ICachingProvider
{
    // Adapt System.Runtime.Caching.MemoryCache to match Interface
}

今天早上我遇到了一個可以幫助解決這個問題的圖書館。 它是一個CacheAdapter,允許您針對公共接口進行編碼,並通過配置交換緩存機制(System.Web.Caching,System.Runtime.Cache或AppFabric)。

https://bitbucket.org/glav/cacheadapter

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM