在Visual Studio 2010中進行調試時,有沒有辦法在QuickWatch窗口中查看HttpSessionState的鍵?C#:枚舉QuickWatch窗口中的SessionState鍵
必須有一個更好的方法,然後退出調試會話,在Session.Contents.Keys對象上編寫一個循環,然後逐步執行循環 - 以查看哪些鍵被定義。
我懷疑我是以一種完全不正確的方式解決這個問題的。提示或建議將不勝感激。
在Visual Studio 2010中進行調試時,有沒有辦法在QuickWatch窗口中查看HttpSessionState的鍵?C#:枚舉QuickWatch窗口中的SessionState鍵
必須有一個更好的方法,然後退出調試會話,在Session.Contents.Keys對象上編寫一個循環,然後逐步執行循環 - 以查看哪些鍵被定義。
我懷疑我是以一種完全不正確的方式解決這個問題的。提示或建議將不勝感激。
HttpSessionState
是IEnumerable
,所以只要在您正在調試的進程中加載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的聯合創始人。
奇妙的是,雖然我必須做一些不正確的事情。當我使用上面的語句評估我的HttpSessionState變量時,我收到錯誤:'System.Linq.Enumerable.ToArray
對不起,我的壞,我忘了你需要一個演員表達。我上面更新了我的答案。 –
謝謝,這太棒了。演員完美演繹 - 更短的Linq語法更棒! – xelco52