Могу ли я отображать содержимое объектов Application или Cache с помощью Glimpse в проекте MVC? - PullRequest
1 голос
/ 03 апреля 2012

В выводе трассировки ASP.NET WebForms есть раздел «Состояние приложения». Можно ли увидеть то же самое, используя Glimpse ?

В методе Index () моего домашнего контроллера я попытался добавить некоторые тестовые значения, но я не вижу вывод ни на одной из вкладок Glimpse.

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

В документации я тоже ничего не видел.

1 Ответ

6 голосов
/ 03 апреля 2012

Я не думаю, что есть встроенная поддержка для этого, но было бы тривиально написать плагин , который будет показывать эту информацию.

Например, чтобы показать все, что хранится в 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"; }
    }
}

и тогда вы получите желаемый результат:

enter image description here

и перечислить все, что хранится в кеше:

[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"; }
    }
}
...