用于Web API的缓存

时间:2014-08-13 14:38:11

标签: .net asp.net-mvc azure asp.net-web-api outputcache

众所周知,OutPutCache不适用于Web API,因此我尝试搜索其他解决方案。 一个是:ASP.NET Web API CacheOutput但我不知道为什么这种方法对我不起作用。 (每当我得到Cache-Control:no-cache。下面的方法是从js脚本调用的)

        [CacheOutput(ClientTimeSpan = 60, ServerTimeSpan = 60)]
        public virtual IEnumerable <UserDaysSummaryModel> Get(string startDate, string endDate)
        {
          ...
        }

另一个解决方案:使用Redis Cache Service on Azure但我没有找到任何关于它如何与Web API一起使用的示例。

那么为Web API使用缓存的方式和方式以及更新缓存最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码在Web API中执行缓存

public class WebAPICachingHelper<T>
{
    public static ObjectCache cache = MemoryCache.Default;
    public static T GetCacheValue(string key)
    {
        if(cache[key] != null)
        {
            return (T)cache[key];
        }
        return default(T);
    }

    public static void SetCacheValue<T>(string key, T t)
    {
        cache[key] = t;
    }
}