如何显示asp.net缓存的内容?

Sté*_*han 5 c# reflection caching casting dynamic

我们有一个asp.net MVC Web应用程序,它使用HttpRuntime.Cache
对象来保留一些静态查找值.我们希望能够实时监控
正在缓存的内容,以便我们查明一些可能的缓存问题.

由于此对象在读取时没有强类型,因此我们需要动态地
将每个条目转换为具体类型.

大多数缓存的项目都是IEnumerable,其中T可以是我们在
项目中使用的任何类,也可以是随着项目进一步增加的新类.
有人可以给我一个如何做到这一点的指针?

非常感谢你.

Chr*_*sic 5

使用 ASP.NET MVC 本身。

public ActionResult Index()
{
    return View(HttpRuntime.Cache)
}
Run Code Online (Sandbox Code Playgroud)

和视图

Html.DisplayForModel()
Run Code Online (Sandbox Code Playgroud)

您将需要使用自定义对象模板(基本上采用 MVC 模板并关闭深度限制)。

http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

在您要更改的对象模板上

else if (ViewData.TemplateInfo.TemplateDepth > 1) { %>
    <%= ViewData.ModelMetadata.SimpleDisplayText %>
Run Code Online (Sandbox Code Playgroud)

并将 > 1 更改为更高的数字,例如 5-10,或者只是完全删除此深度检查(我可能会从 5 开始并从那里开始)。