1

ASP.NET WebForms 跟踪输出有一个应用程序状态部分。是否可以使用Glimpse看到相同的内容看到相同的内容?

在我的家庭控制器的 Index() 方法中,我尝试添加一些测试值,但在任何 Glimpse 选项卡中都看不到输出。

ControllerContext.HttpContext.Application.Add("TEST1", "VALUE1");
ControllerContext.HttpContext.Cache.Insert("TEST2", "VALUE2");

我也没有在文档中看到任何内容。

4

1 回答 1

6

我不认为对此有开箱即用的支持,但编写一个显示此信息的插件将是微不足道的。

例如,要显示存储在 ApplicationState 中的所有内容,您可以编写以下插件:

[Glimpse.Core.Extensibility.GlimpsePluginAttribute]
public class ApplicationStateGlimpsePlugin : IGlimpsePlugin
{
    public object GetData(HttpContextBase context)
    {
        var data = new List<object[]> { new[] { "Key", "Value" } };
        foreach (string key in context.Application.Keys)
        {
            data.Add(new object[] { key, context.Application[key] });
        }
        return data;
    }

    public void SetupInit()
    {
    }

    public string Name
    {
        get { return "ApplicationState"; }
    }
}

然后你得到想要的结果:

在此处输入图像描述

并列出存储在缓存中的所有内容:

[Glimpse.Core.Extensibility.GlimpsePluginAttribute]
public class ApplicationCacheGlimpsePlugin : IGlimpsePlugin
{
    public object GetData(HttpContextBase context)
    {
        var data = new List<object[]> { new[] { "Key", "Value" } };
        foreach (DictionaryEntry item in context.Cache)
        {
            data.Add(new object[] { item.Key, item.Value });
        }
        return data;
    }

    public void SetupInit()
    {
    }

    public string Name
    {
        get { return "ApplicationCache"; }
    }
}
于 2012-04-03T16:33:44.023 回答