我在VS2010中进行调试,我想检查一个字符串值,但我可以通过手表,悬停,本地等方式向我显示的调试器是:
"System.Linq.Enumerable+<TakeIterator>d__3a`1[System.Char]"
我不关心是否存在过早评估的副作用或其他什么,我只是想看看如果我现在在当前断点处评估表达式将会评估什么。
这是怎么做到的?我也可以通过以前评估的方式更改我的代码吗?当我没有调试时,我不在乎......但只是想知道。
如果它是相关的......(我怀疑它。)我正在填充一个新的 保存之前的实体对象 到数据库...某些字段分配了LINQ语句,我不确定它们何时在EF的封面下进行评估。数据库更新失败,'字符串或二进制数据将被截断...所以我试图找到太长的字段。
答案 0 :(得分:5)
答案 1 :(得分:2)
这已经很晚了,可能会也可能不会适用于最初提出的问题,但我前段时间发现了Bart De Smet关于编码技术的文章,以帮助Linq to Objects调试:
http://community.bartdesmet.net/blogs/bart/archive/2009/04/23/linq-to-objects-debugging.aspx
我还没有尝试过,但我觉得它看起来很有趣。