如何使缓存的属性无效



在我的ASP.NET网站中,我坚持从DB检索的对象一段时间,并确保每个DB记录创建对象的唯一一个实例。

我还使用[instancecache]来缓存计算一个业务对象的值,在用户会话期间,将对象保存在缓存中。

今天,当我想使缓存值无效时,我遇到了用例。

如何使用[InstanceCache]缓存的属性?

请建议。

谢谢。

我认为您可以使用CacheAspect类的ClearCache静态方法之一来做到这一点,该方法允许在不同级别的粒度上清除缓存:

public static void ClearCache(MethodInfo methodInfo);
public static void ClearCache(Type declaringType, string methodName, params Type[] types);
public static void ClearCache(Type declaringType, string methodName, Type[] types, object[] values);
public static void ClearCache(Type declaringType);
public static void ClearCache();

如果您只想清除特定[InstanceCache]属性的缓存,则需要使用反射获得其MethodInfo(对于我认为的属性的"获取"方法),然后将其传递给第一个变体。p>这似乎适用于常规[Cache]属性注释,因此,如果完全支持[InstanceCache]项目的缓存,这将是GO的路线。

相关内容

  • 没有找到相关文章

最新更新