簡體   English   中英

.NET執行引擎和BCL(基類庫)的合作

[英].NET Execution Engine and BCL (Base Class Library) cooperation

目前,我正在讀一本由Andrew Troelsen和Philip Japikse撰寫的名為.NET和.NET Core的C#Pro 7,作為我編程理論的補充。 目前讓我感到好奇的主題是帶有.NET基類庫(例如mscorlib.dll)的協作.NET執行引擎(mscoree.dll)。

有人可以告訴我,在編譯成指令集平台期間,我們的解決方案代碼與BCL交互的原因是什么?

  1. 這種比較(BCL和mscorlib.dll)是我們的代碼與所使用的基類代碼之間的一種額外的兼容性檢查嗎? (檢查名稱約定,返回類型等)
  2. 還是只使用了存儲在mscrolib.dll中的類的原始結構的構造,並使用類似於“布局層”的方式,我們可以在其中應用我們的值,然后返回輸出信息?

“在需要時,CLR還將與.NET基類庫中包含的類型進行交互。”此語句的“必需”部分究竟是什么意思? 因為這又是我想以正確的方式理解的事情:)

我剛開始讀這本書。 可能您已經找到了答案,但是對於好奇的人,我將投入兩分錢。

為了使編譯后的代碼在平台上運行,應將其編譯為特定於平台的指令。 但是在此之前,應將代碼編譯為MSIL文件。 對於應用程序代碼,每次進行更改時都會生成此MSIL文件,並且發生在CLR之前。 對於BCL,已經存在程序集(MSIL文件),並且在CLR中應僅將它們加載到內存中。 因此,運行時引擎確定應將哪些確切的程序集轉換為特定於平台的指令,然后將其加載到內存中。

所以

如果需要,CLR還將與.NET基類庫中包含的類型進行交互

這意味着它將查看代碼中引用了BCL中的哪些類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM