【发布时间】:2010-10-27 01:51:54
【问题描述】:
是否有人对调试 C# 对象初始化程序块中的异常有任何提示?对象初始值设定项语法基本上是全有或全无,这使得在 LINQ 查询内部进行故障排除特别困难。除了将对象创建分解为一个单独的方法之外,我能做些什么来查看哪个属性设置器抛出异常吗?
【问题讨论】:
标签: c# linq object initializer
是否有人对调试 C# 对象初始化程序块中的异常有任何提示?对象初始值设定项语法基本上是全有或全无,这使得在 LINQ 查询内部进行故障排除特别困难。除了将对象创建分解为一个单独的方法之外,我能做些什么来查看哪个属性设置器抛出异常吗?
【问题讨论】:
标签: c# linq object initializer
禁用跳过属性设置器的选项 [跳过属性和操作符(仅限托管)] 可以让您进入属性设置器。
否则,最好的选择通常是将其拆分并在 LINQ 语句之外对其进行调试。您可以将初始化参数包装成 linq 中的匿名类型,并在 linq 语句之外构造对象以进行调试。
【讨论】:
您是否将 VS 设置为在抛出异常时中断? (默认情况下仅在未处理的异常上中断)。调试 |例外,并检查“抛出”。
仅此一项可能无法回答您的问题,但它可能有助于调试。
除此之外,您可以暂时将代码从初始化程序块中分离出来(仅用于调试),然后如果需要,您可以在代码正常工作后恢复初始化程序块。
【讨论】:
将其从您单独设置每个属性的对象初始化程序块中分离出来。这样你就可以真正进入代码。
【讨论】: