元数据在 .NET (Visual Studio 2012) 中来自何处

本文关键字:何处 2012 Studio NET Visual 元数据 | 更新日期: 2023-09-27 18:34:19

我以为我知道这个问题的答案,我通过反射理解它来自引用的库。 但是,我遇到一种情况,即我尝试使用第二个用 VB.NET 编写的参考程序来调试 C# 程序(也就是说,我正在尝试用 C# 重写 VB.NET 程序(。

我正在查看的特定代码使用引用的类,我的 C# 程序的 F12(转到定义(在新窗口中加载对象元数据;但是 VB.NET 程序中的相同操作将我带到对象浏览器,声称引用的 dll 位于不同的位置(它们都引用相同的库(。

这两种语言在这样一个中心方面是否有可能表现不同,或者引用我不知道的库是否有另一部分?

元数据在 .NET (Visual Studio 2012) 中来自何处

">

转到定义"只有在 IDE 知道该代码并且智能感知已解析该代码时,才能将您带到实际的源代码。 如果项目不是同一解决方案的一部分或不是用同一种语言编写的,则无法做到这一点。 程序集引用仅提供嵌入在程序集中的元数据。 它只描述类型,而不是代码。 除了通过调试器的 PDB 文件之外,没有指向生成它的原始源代码的链接,IntelliSense 不使用该文件,因为它不能被依赖来存在和准确。

是的,C# IDE 和 VB.NET IDE 使用不同的方法来解决这个问题。 否则,有两个非常不同的团队从事这项工作的副作用,以及他们的IDE演变缺乏通用性。 Visual Basic 已经有 IDE 支持几十年了,C# 是这个领域的新成员,它背后的团队需要在 13 年前从头开始。

VB.NET IDE 确实突出显示了对象浏览器中的标识符,就像 15+ 年前所做的那样。 C# IDE 包含的代码将程序集元数据反编译回可读的 C# 代码,并在编辑器窗口中显示生成的文本。 C# 团队没有选择 VB.NET 方法的确切原因肯定只有内部人士知道。