c# .net 反射Reflection--初識篇,實現可配置,可擴展

引子

【C# 高級語言 (人類語言)】--->【編譯器 編譯】--->【DLL/EXE】裏面有2個文件分別是【metadata】和【IL】--->【IL】--->【CLR/JIT】--->【機器碼 (01010101)】

我們所寫的語言是【C# 高級語言 (人類語言)】這裏的c#也可以是PHP或者JAVA等高級語言,是人類可以看懂的。

然後,通過編譯器,編譯成DLL或者EXE文件,這個文件下面有2個文件一個metdata和IL;

metdata裏面存放着DLL或者EXE文件裏面的類和方法的描述信息,類似於一本書的目錄;

IL裏面存放着編譯後的完整代碼;

IL:也是一種面嚮對象語言,但是不太好閱讀

 metadata元數據:數據清單,描述了DLL/exe裏面的各種信息

TIS:metdata和IL這兩個文件,我們是看不到的,如果用反編譯工具(ILSpy反編譯工具)是可以看到“IL”文件;

然後,提供給CLR進行執行,CLR會把IL文件裏的代碼編譯成“機器碼”也就是0101組成的代碼,由計算機運行;

CLR同JAVA的虛擬機一樣,是個運行環境;

TIS:二次編譯:爲了一次編譯,不同平臺使用;加一層中間層,更靈活;

 


概述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章