HttpRuntime.Cache - 获取Entry的创建时间

时间:2013-02-21 16:06:52

标签: c# reflection httpruntime.cache

我有一个小的CMS,它正在使用从数据库渲染的Razor Views。在您更改其中一个页面之前,一切正常。

当页面被分配到虚拟路径时,MVC或RazorViewEngine将缓存视图,这是完全合理的。

但是,如果有人进行了更改,我想清除此特定视图的缓存。此外,我想在渲染页面之前清除缓存。所以我的想法是在我的数据库中的View中添加一个“更新的”DateTime信息(无论如何这个字段都是我们表中的标准字段之一),然后将这个Date与CreateTime相比较。进入HttpRuntime.Cache。我可以看到在VisualStudio中有一个CreationTime,但我没有经验的反射来获得这个值。

另外,正如我所听到的,Reflection并不是很快,如果每次页面都被渲染时我都必须这样做,那么它会减慢页面的速度。

所以我的问题,可以1.有人帮助我从带有反射的HttpRuntime.Cache条目中获取CreationTime,或者2.有人知道更好的方法吗?

1 个答案:

答案 0 :(得分:0)

我在MVC框架的错误位置,我所追求的是VirtualPathProvider的缓存,我找到了我必须覆盖的方法。 对于那些面临同样问题的人。

  • GetCacheDependency
  • GetFileHash