调试C#对象初始化程序

时间:2009-05-18 15:50:41

标签: c# linq object initializer

有没有人有关于在C#对象初始化程序块中调试异常的任何提示?对象初始化器语法基本上是全部或全部,这使得在LINQ查询内部进行故障排除特别困难。如果没有将对象创建分解为单独的方法,那么我可以做些什么来查看哪个属性setter引发了异常?

3 个答案:

答案 0 :(得分:14)

禁用跳过属性设置器的选项[跳过属性和运算符(仅限托管)]可以让您进入属性设置器。

否则,最好的选择通常是将其分解并在LINQ语句之外进行调试。您可以将初始化参数包装到linq中的匿名类型中,并在linq语句之外构造对象以进行调试。

答案 1 :(得分:4)

你是否设置了VS以在抛出异常时中断? (默认情况下仅在未处理的异常时中断)。调试|例外,并检查“抛出”。

仅此一点可能不是您问题的答案,但它可能有助于调试。

除此之外,您可以暂时将代码从初始化程序块中删除(仅用于调试),然后如果需要,可以在代码运行后恢复初始化程序块。

答案 2 :(得分:1)

将其从对象初始化程序块中分离出来,您可以单独设置每个属性。这样你就可以实际进入代码。