在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