Joh*_*ohn 5 .net reflection debugging invoke visual-studio
我使用Reflection(Method.Invoke)在.NET中调用函数.如果在此方法中发生错误并引发异常,则调试器不会显示实际代码,而是在Invoke()调用时停止.我可以从InnerException中检索异常信息,但与使用callstack的常规调试等相比,这非常不方便.可以像使用常规函数调用一样调试使用Method.Invoke调用的方法吗?
您喜欢的是"Just My Code"功能.默认情况下,调试器将调试限制为由开发人员认为是编写的代码.这减少了调试WPF或WinForms启动时会出现的大量噪音.
为了让所有代码都能运行Exception助手等项目,您应该禁用Just My Code.
如果所有其他方法都失败了,您还可以将类似的内容放入被调用的方法中:
#if DEBUG
System.Diagnostics.Debugger.Break();
#endif
Run Code Online (Sandbox Code Playgroud)
这将基本上“以编程方式”在那里导致断点。
您还可以通过执行以下操作使其稍微好一点:
if(Debugger.IsAttached)
Debugger.Break();
Run Code Online (Sandbox Code Playgroud)
这样它只会在您实际在调试器中运行时中断。
编辑:
第二个想法是,如果您有编辑它的代码,那么您可能只需通过 VisualStudio 在那里粘贴一个常规断点即可。我想我的回答没有意义......对不起:)
我的解决方法是创建计时器并调用其中的方法Tick():
GUI代码->通过Method.Invoke调用函数->函数设置一个定时器->在Tick中有函数体
不幸的是它不是很漂亮(并且在某些情况下不适合)