我想了解更多有关System.Linq.Expression。*中内容的工作方式。
VisualStudio告诉我这是我要查找的文件:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
因此,我在dnSpy中打开了该文件,但是对于我想查看的类型,它没有任何实现。从字面上看,所有内容都实现为throw null;
所以我要做的只是在Visual Studio中引用System.Linq.Expressions.Expression
类型之一,突出显示它并按F12键。
VisualStudio显示了一个不错的元数据文件,在其顶部显示了以下内容:
#region Assembly System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.Core.dll
#endregion
我打开了错误的文件,而实际的定义实际上在其他地方吗?
我知道互联网上也有官方的microsoft reference source code,令我惊讶的是,所有内容的显示都非常符合预期!
因为(至少对我来说)这是一个非常令人困惑的问题,所以我什至不知道该问什么是正确的问题。 我想,通常情况下,对这些事情有更多了解的人很可能会用一个答案来解释一切(可能即使没有实际单独回答以下所有这些问题,但我会很感激的:))>
Microsoft/Scripting/Ast/
中,因此我认为也许某个名称类似于.dll的.dll存在于某个地方,但我找不到它(这是预期的,是吗?源文件的文件夹结构实际上没有说明名称空间,恰恰是按照惯例,大多数程序员尝试使源文件的文件夹结构尽可能与名称空间匹配)DebuggerTypeProxy
有关吗