.NET执行引擎与BCL(基类库)的协作

.NET执行引擎与BCL(基类库)的协作,.net,clr,base-class-library,cls,.net,Clr,Base Class Library,Cls,目前,我正在阅读一本名为《C#Pro 7》的书,其中包含Andrew Troelsen和Philip Japikse编写的.NET和.NET Core,作为我编程理论的额外补充。此时此刻对我来说非常重要的主题是.NET执行引擎(mscoree.dll)与.NET基类库(例如mscorlib.dll)的协作 有人能告诉我,在编译到指令集平台的过程中,我们的解决方案代码与BCL交互的原因是什么吗 这种比较(BCL和mscorlib.dll)是我们的代码和所使用的基类代码之间的额外兼容性检查吗?(检查

目前,我正在阅读一本名为《C#Pro 7》的书,其中包含Andrew Troelsen和Philip Japikse编写的.NET和.NET Core,作为我编程理论的额外补充。此时此刻对我来说非常重要的主题是.NET执行引擎(mscoree.dll)与.NET基类库(例如mscorlib.dll)的协作

有人能告诉我,在编译到指令集平台的过程中,我们的解决方案代码与BCL交互的原因是什么吗

  • 这种比较(BCL和mscorlib.dll)是我们的代码和所使用的基类代码之间的额外兼容性检查吗?(检查名称约定、返回类型等)
  • 或者它只是使用存储在mscrolib.dll中的类的原始结构的构造,并使用类似于“布局层”的东西,在这里我们可以应用我们的值,然后返回输出信息
    “CLR还将在需要时与.NET基类库中包含的类型交互”这句话的“必需”部分到底是什么意思?因为这也是我想以正确的方式理解的:)

    我刚刚开始阅读这本书。也许你已经找到了答案,但对于好奇的其他人,我会把我的两分钱

    为了使编译后的代码在平台上运行,应该将其编译为特定于平台的指令。但在此之前,代码应编译为MSIL文件。 对于应用程序代码,每次在CLR之前进行更改时都会生成此MSIL文件。 对于BCL,已经存在程序集(MSIL文件),并且在CLR中,它们应该只加载到内存中。因此,运行时引擎定位哪些确切的程序集应该转换为特定于平台的指令并加载到内存中

    所以

    CLR还将与.NET中包含的类型交互 基类库(如果需要)

    这意味着它将查看代码中引用了BCL中的哪些类型