我如何使ReSharper Ultimate反编译堆栈框架?

我知道ReSharper Ultimate在Visual Studio中添加了一个可以反编译外部代码的加载项,因为在此之前,我曾无意对各种事情进行了反编译.但是现在我处在一个实际上有用的情况下,而实际上却无法显示反编译视图.

我正在调试Visual Studio扩展,并且遇到了一个操作,在该操作中尝试实例化表单设计器会导致NullReferenceException超出我的代码的最后一次调用,导致数十个堆栈帧(以及多个托管到本机转换往返).我可以在调试器中加载符号并检查调用堆栈,它看起来像是在与名称解析有关,但是名称是框架中类型的名称,而不是我自己的代码,因此我不知道发生了什么或如何解决.

能够使用此反编译功能肯定是一件好事,因为我知道我可以查看此功能的内容并弄清楚出了什么问题,但是无论我查看哪个菜单,我都无法弄清楚该如何做.得到它给我一个外部堆栈框架的反编译.

有谁知道如何做到这一点?

解决方法:

ReSharper不会从调用堆栈窗口反编译.我想主要原因是您将无法调试该代码或设置断点,因为它只是反编译的代码,并且不包含调试信息.而且我认为,如果确实从调用堆栈窗口中进行了反编译,则您希望调试也能正常进行.

相反,您可以做的是使用dotPeek充当符号服务器.它将启动HTTP服务器并侦听程序集的调试文件的请求.如果加载了程序集,它将对其进行反编译,生成一个.pdb文件并将其提供给Visual Studio.然后,您可以双击调用堆栈中的框架,然后导航到刚刚反编译的源.

您可以read more about it in the documentation.

上一篇:c#-仅保留使用的类型并删除未使用的类型


下一篇:C#-在Unityconfig.cs上无法使用Resharper代码清理