当前,我正在阅读一本书,由Andrew Troelsen和Philip Japikse撰写,书中包含.NET和.NET Core的C#Pro 7,是我编程理论的补充内容。对我而言,此时令我着迷的主题是与.NET基类库(例如mscorlib.dll)协作的.NET执行引擎(mscoree.dll)。
有人可以告诉我为什么在编译为指令集平台期间我们的解决方案代码与BCL交互的原因是什么?
“ CLR还将在需要时与.NET基类库中包含的类型进行交互”。此语句的“必需”部分究竟是什么意思?因为这又是我想以正确的方式理解的事情:)
答案 0 :(得分:0)
我刚开始读这本书。也许您已经找到了答案,但是对于好奇的人,我会付两美分。
为了使编译后的代码在平台上运行,应将其编译为平台特定的指令。但是在此之前,应将代码编译为MSIL文件。 对于应用程序代码,每次进行更改时都会生成此MSIL文件,并且发生在CLR之前。 对于BCL,已经存在程序集(MSIL文件),并且在CLR中应仅将它们加载到内存中。因此,运行时引擎可以确定哪些确切的程序集应转换为特定于平台的指令并加载到内存中。
所以
CLR也将与.NET中包含的类型进行交互 基类库在需要时
这意味着它将查看代码中引用了BCL中的哪些类型。