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

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

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

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

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


person Mattio    schedule 03.04.2012    source источник


Ответы (1)


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

Например, чтобы показать все, что хранится в 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"; }
    }
}
person Darin Dimitrov    schedule 03.04.2012
comment
++ Дарин - Вы даже не дали мне ответить здесь. ;) - person nikmd23; 03.04.2012
comment
В качестве примечания: у нас уже давно есть плагин кэширования в списке задач. Мы надеемся выпустить его чуть позже версии 1.0, но открыты для предложений. - person nikmd23; 03.04.2012