C# &引用;使用Visual Studio调试lambda表达式;不再工作了?
在Visual Studio 2015中,引入了对调试lambda表达式的支持: 然而,我从未能在Visual Studio 2017或新的Visual Studio 2019中实现这一点 2019年,我得到:“错误:检查System.Reflection.PropertyInfo类型的调试对象的状态在此上下文中不受支持” 这个功能被删除了吗C# &引用;使用Visual Studio调试lambda表达式;不再工作了?,c#,.net,visual-studio,visual-studio-2015,visual-studio-2019,C#,.net,Visual Studio,Visual Studio 2015,Visual Studio 2019,在Visual Studio 2015中,引入了对调试lambda表达式的支持: 然而,我从未能在Visual Studio 2017或新的Visual Studio 2019中实现这一点 2019年,我得到:“错误:检查System.Reflection.PropertyInfo类型的调试对象的状态在此上下文中不受支持” 这个功能被删除了吗 示例:我正在调试带有变量“tags”的代码,该变量包含IQueryable。我想检查每个项目的Name属性,因此在即时窗口或监视窗口中我写:tags。选
示例:我正在调试带有变量“tags”的代码,该变量包含
IQueryable
。我想检查每个项目的Name
属性,因此在即时窗口或监视窗口中我写:tags。选择(t=>t.Name)
。然后是错误。这显然是由于Microsoft引入的新调试引擎中缺少一项功能造成的。按照我的指示,我有事情要做。这些说明归结为:
在有知识的人出现之前,这更多的是一个没有背景的临时回答
如果在
IQueryable
上调用ToArray
,则可以使用lambdas对其进行调试。但是,它对AsEnumerable
结果不起作用,因此它似乎不仅仅是关于使用IEnumerable
方法与IQueryable
方法。作为一种替代方法,您可以使用即时窗口来探索值。考虑下面的简单代码:
static void Main(string[] args)
{
int[] Numbers = { 10, 20, 30, 40 };
var NewNumbers = Numbers.Select(x => x * x);
}
将调试点放在lambda表达式所在的位置,然后打开调试->窗口->立即
在即时窗口中,可以编写要测试的表达式并查看结果。我键入:
Numbers.Select(x => x*x)
按enter键,您将看到以下结果:
Count = 4
[0]: 100
[1]: 400
[2]: 900
[3]: 1600
即时窗口是检查变量、运行表达式和帮助更快调试的平台。您能添加一个简单的示例吗?@stuart:为了方便您添加。请展示一些data@Protectorone如果您尝试使用
IEnumerable
而不是IQueryable
,是否有效?@AderbalFarias:有趣!它确实适用于本机IEnumerable
!但是,它不适用于IQueryableAsEnumerable()
,但它将适用于ToArray
!我也读过,但这是关于2013年的!我希望2015年的功能在2019年发挥作用!2019年没有“使用托管兼容性模式”这样的选项