我正在尝试将使用 EntLib 的解决方案转换为使用 AppFabric 缓存。通过一些扩展方法的帮助,这是一个相当轻松的过程。
我使用的扩展方法:
public static bool Contains(this DataCache dataCache, string key)
{
return dataCache.Get(key) != null;
}
public static object GetData(this DataCache dataCache, string key)
{
return dataCache.Get(key);
}
但 EntLib 有两个功能我觉得很难转换。即“Count”(计算缓存中键的数量)和“Flush”(从缓存中删除所有数据)。如果我可以迭代缓存中的键,那么这两个问题都可以解决。
有一种方法叫做ClearRegion(string region)
,但这要求我在我使用的所有 Get/Put/Add 方法上指定一个区域名称,这需要一些容易出错的手动工作。
有什么办法可以获取缓存中的键列表吗?
是否有我可以使用的默认区域名称?
当我没有使用区域名称时如何刷新缓存?
See 我之前的回答 for my 猜测当您不指定区域时,缓存如何在内部工作,以及如何获取不在指定区域中的对象的计数。
我们可以使用相同的技术构建 Flush 方法:
public void Flush (this DataCache cache)
{
foreach (string regionName in cache.GetSystemRegions())
{
cache.ClearRegion(regionName)
}
}
正如我所说,我认为命名区域是probably要走的路 - 在我看来,使用它们解决的问题比它产生的问题更多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)