【发布时间】:2012-03-27 09:52:15
【问题描述】:
我正在使用 MemoryCache 在我的 MVC Web 应用程序中缓存值。是否可以将 MemoryCache 集合值保存到文件中,然后再加载它们?
【问题讨论】:
标签: .net c#-4.0 memorycache
我正在使用 MemoryCache 在我的 MVC Web 应用程序中缓存值。是否可以将 MemoryCache 集合值保存到文件中,然后再加载它们?
【问题讨论】:
标签: .net c#-4.0 memorycache
认为理论上可行,使用反射将所有数据复制到一些简单的 json 对象,然后将其序列化为字符串并存储在磁盘上。当需要检索对象时,需要再次借助反射从 json 构建新的 MemoryCache 实例。
也许它还有一些带有二进制序列化或将对象转换为字节流然后保存的变体。
【讨论】:
这是一个样本
public static class Cashing
{
public static void SetData<T>(string CacheKey, T data)
{
ObjectCache cache = MemoryCache.Default;
if (cache.Contains(CacheKey))
cache.Remove(CacheKey);
CacheItemPolicy cacheItemPolicy = new CacheItemPolicy();
cacheItemPolicy.AbsoluteExpiration = DateTime.Now.AddHours(1.0);
cache.Add(CacheKey, data, cacheItemPolicy);
}
public static object GetData<T>(string CacheKey)
{
ObjectCache cache = MemoryCache.Default;
if (cache.Contains(CacheKey))
return cache.Get(CacheKey);
return default(T);
}
}
【讨论】: