在我的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的路线。