2012-06-04 33 views
1

在Visual Studio 2010中進行調試時,有沒有辦法在QuickWatch窗口中查看HttpSessionState的鍵?C#:枚舉QuickWatch窗口中的SessionState鍵

必須有一個更好的方法,然後退出調試會話,在Session.Contents.Keys對象上編寫一個循環,然後逐步執行循環 - 以查看哪些鍵被定義。

我懷疑我是以一種完全不正確的方式解決這個問題的。提示或建議將不勝感激。

回答

2

HttpSessionStateIEnumerable,所以只要在您正在調試的進程中加載​​System.Core DLL,您就可以在QuickWatch窗口中評估System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Cast<object>(myHttpSessionState))。如果您在看HttpSessionState對象往往myHttpSessionState.Cast<object>().ToArray()

,你可能想嘗試BugAid,並確定上述表達式作爲Custom Expression上:如果當前的代碼文件有一個using System.Linq聲明,你可以寫一個短的表達HttpSessionState類,所以你不會被迫每次都輸入長表達式。

完全披露:我是BugAid的聯合創始人。

+0

奇妙的是,雖然我必須做一些不正確的事情。當我使用上面的語句評估我的HttpSessionState變量時,我收到錯誤:'System.Linq.Enumerable.ToArray (System.Collections.Generic.IEnumerable )'的最佳重載方法匹配'有一些無效的參數。 – xelco52

+0

對不起,我的壞,我忘了你需要一個演員表達。我上面更新了我的答案。 –

+0

謝謝,這太棒了。演員完美演繹 - 更短的Linq語法更棒! – xelco52