简介
当人员进行项目开发时,经常需要查看他们在代码中所使用的类型或类成员的源代码定义。 在 Visual Studio 中,经常使用 “转到定义”和“速览定义” 查看类型或成员的定义 。 如果源代码不可用,则会显示为元数据。
常规 F12
使用 Visual Studio 创建 .NET Core Web API 项目,接着在 starup 输入 ServiceDescriptor 类,然后 F12
可以看到,此时我们只能看到 ServiceDescriptor 类的成员,并看不到实现
现在 F12
接着从菜单栏中选择“工具” > “选项”。 然后,展开“文本编辑器” > “C#” > “高级”,并选择“启用导航到反编译源代码”。
设置完成后,再次 F12,可以看到此时,可以看到 ServiceDescriptor 类成员的实现
.NET Framework 与 .NET Core
反编译配置下,ILSpy 在反编译 .NET Framework 与 .NET Core 有时会有不同的。如:string
1).NET Framework
在 .NET Framework 下,看 string 的 IsNullOrEmpty 可以看到内部实现
2).NET Core
在 .NET Core下,看 string 的 IsNullOrEmpty 不可以看到内部实现
原理
Visual Studio 是使用 ILSpy 反编译重建方法体。 第一次访问此功能时,必须同意有关软件授权以及版权和商标法律的法律免责声明。