我有一个需要在缓存中存储数据的类。最初,我在asp.net应用程序中使用它,所以我使用System.Web.Caching.Cache。
现在我需要在Windows服务中使用它。现在,据我所知,我不应该在非asp.net应用程序中使用asp.net缓存,所以我正在研究MemoryCache。
问题是它们不兼容,所以要么我在asp.net应用程序中改为使用MemoryCache,要么我需要创建一个适配器,以确保两个缓存实现具有相同的接口(可能是从ObjectCache派生的,并在内部使用asp.net缓存?)
在asp.net中使用MemoryCache的含义是什么?
纳达夫
发布于 2010-10-07 22:41:09
我会采用你的第二种选择,并稍微重构一下。我将创建一个接口和两个提供程序(它们是您的适配器):
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
}
发布于 2011-06-01 22:58:42
今天早上,我偶然发现了一个库,它可以帮助解决这种情况。它是一个CacheAdapter,它允许您针对一个公共接口编写代码,并通过配置换出缓存机制(System.Web.Caching、System.Runtime.Cache或AppFabric)。
https://stackoverflow.com/questions/3882733
复制相似问题