我有一个类需要将数据存储在缓存中。
最初我在asp.net应用程序中使用它,所以我使用System.Web.Caching.Cache。
最初我在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 }