Es imprescindible interpretar el código bien previamente a aplicarlo a tu proyecto si ttienes algo que aportar puedes dejarlo en los comentarios.
Solución:
Desafortunadamente, el almacenamiento en caché no está integrado en ASP.NET Web API.
Mira esto para ponerte en marcha: http://www.strathweb.com/2012/05/output-caching-in-asp-net-web-api/
Un recurso actualizado aquí: https://github.com/filipw/AspNetWebApi-OutputCache
EDITAR: a partir del 2020-02-03, aunque esta respuesta es bastante antigua, sigue siendo válida.
Las dos URL anteriores conducen al mismo proyecto, ASP.NET Web API CacheOutput de Filip W
Agregue una referencia a System.Runtime.Caching en su proyecto. Agregue una clase auxiliar:
using System;
using System.Runtime.Caching;
public static class MemoryCacher
public static object GetValue(string key)
MemoryCache memoryCache = MemoryCache.Default;
return memoryCache.Get(key);
public static bool Add(string key, object value, DateTimeOffset absExpiration)
MemoryCache memoryCache = MemoryCache.Default;
return memoryCache.Add(key, value, absExpiration);
public static void Delete(string key)
MemoryCache memoryCache = MemoryCache.Default;
if (memoryCache.Contains(key))
memoryCache.Remove(key);
Luego, desde su código, obtenga o establezca objetos en el caché:
list = (List )MemoryCacher.GetValue("CacheItem1");
y
MemoryCacher.Add("CacheItem1", list, DateTimeOffset.UtcNow.AddYears(1));
Como ya mencionó OakNinja, el almacenamiento en caché de salida a través de [OutputCache]
attributes actualmente no es compatible con ASP.NET Web API.
Sin embargo, hay algunas implementaciones de código abierto que llenan el vacío:
Strathweb.CacheOutput
Una pequeña biblioteca que brinda opciones de almacenamiento en caché, similar a “OutputCacheAttribute” de MVC, a las acciones de la API web.
Github: https://github.com/filipw/Strathweb.CacheOutput
Licencia: Apache v2
cachévaca
Una implementación de almacenamiento en caché HTTP en ASP.NET Web API tanto para el lado del cliente como para el lado del servidor.
Github: https://github.com/aliostad/CacheCow
Licencia: MIT
Nota: Según los proyectos README, la biblioteca no soporta attribute enrutamiento:
Actualmente CacheCow’s attribute la configuración no funciona con el enrutamiento de atributos. Y personalmente creo que no debería usar el enrutamiento de atributos… (Fuente: https://github.com/aliostad/CacheCow/blob/master/README.md)
Hay una buena publicación de blog de Scott Hanselmann que cubre ambos conjuntos de funciones.
Comentarios y puntuaciones de la guía
Si te ha resultado provechoso nuestro artículo, sería de mucha ayuda si lo compartieras con otros programadores de esta forma contrubuyes a dar difusión a nuestro contenido.