2012-04-03 3 views
1

ASP.NET WebFormsトレース出力には、アプリケーション状態のセクションがあります。 Glimpseを使って同じことを見ることはできますか?MVCプロジェクトでGlimpseを使用してアプリケーションオブジェクトまたはキャッシュオブジェクトの内容を表示できますか?

私の家のコントローラのIndex()メソッドでは、いくつかのテスト値を追加しようとしましたが、Glimpseタブの出力は表示されません。

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

ドキュメントには何も表示されませんでした。

答えて

6

これはすぐに使用できるとは思われませんが、この情報を表示するのは些細なものです。write a plugin

次のプラグインを書くことができ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"; } 
    } 
} 
+0

++ Darin - あなたdidn '私もここに応答する瞬間を与える。 ;) – nikmd23

+0

補足として、私たちは長い間、todoリストにキャッシュプラグインを持っていました。私たちは、1.0より少し古いバージョンをリリースしたいと考えていますが、貢献することは可能です。 – nikmd23

+0

優れています。サンプルコードのためにありがとう! – Mattio

関連する問題