如何在Visual Studio 2017中查看.NET方法的实现
解决Visual Studio 2017中无法查看HttpClient.GetAsync实际实现的问题
我完全懂你这种郁闷——想深挖HttpClient.GetAsync()的底层实现,结果按F12跳过去只看到一堆文档注释,根本摸不到实际代码。别慌,咱们试试下面这些方法,应该能帮你搞定:
方法一:启用框架源代码调试
这是最核心的一步,默认情况下VS可能没开启这个功能:
- 打开VS2017,依次点 工具 → 选项 → 调试 → 常规
- 找到并勾选 启用.NET Framework源代码调试(如果你的项目用的是.NET Core,记得勾选对应的启用.NET Core源代码调试,不过VS2017要更新到15.9及以上版本才能更好支持.NET Core源码调试)
- 同时一定要取消勾选 仅我的代码,这个选项会把框架源码挡在外面,让你看不到底层实现
- 点确定后重启VS,再对着
GetAsync()按F12试试,这次应该能跳转到实际的源码了
方法二:配置符号服务器下载源码文件
要是启用调试后还是看不到代码,大概率是对应的源码符号文件没下载:
- 还是在 调试 → 常规 里切换到 符号 选项卡
- 勾选 Microsoft符号服务器,VS会自动从微软服务器下载匹配的框架源码符号
- 你可以设置一个本地文件夹作为符号缓存,这样下次就不用重复下载了
- 点击 加载所有符号 或者等VS自动完成下载,之后再尝试跳转定义
方法三:手动追踪源码线索
如果上面的方法都不生效,还有个笨办法:GetAsync()的核心逻辑其实是调用SendAsync()方法,你可以先跳转到SendAsync()的定义,顺着这个线索一步步找到GetAsync()的具体实现。另外,也可以通过VS的“查找所有引用”功能,定位到HttpClient类的源码文件,直接查看里面的方法实现。
最后提醒下:确保你的VS2017已经更新到最新版本,尤其是.NET Core相关的工作负载要安装完整,这样对框架源码的支持会更稳定。
内容的提问来源于stack exchange,提问作者anon
相关产品推荐
相关产品推荐

