1. 程式人生 > >clr的執行模型(下)

clr的執行模型(下)

兼容 派生類 標準 模型 環境 程序集 托管 最小 詳細

1.1 通用類型系統

Common type system用於描述類型的定義和行為,具體可以看ECMA,最好了解一下es5 es6。

一個類可以包含0個或多個成員,字段、方法、屬性、事件。

Private 類內部訪問

Assembly 同一程序級訪問

Family or assembly 由程序集中的派生類訪問

Public 任何人都可以訪問

1.2 公共語言規範

不同語言創建的對象可通過com相互通信,clr使用標準類型集、元素據、公共執行環境集成了所有語言。Common language specification,cls詳細定義了最小功能集,編譯器支持該功能集,生成的類型才兼容其他符合cls、面向clr的語言生成的組件。

1.3 與非托管代碼的互操作性

Clr支持三種互相操作:

(1)托管代碼能調用dll中的非托管函數

托管代碼通過P/Invoke機制調用dll中的函數。

(2)托管代碼可以使用現有COM組件(服務器)

對於大量非托管com服務器,可創建一個托管程序集來描述com組件,托管代碼可以像訪問托管類型一樣訪問托管程序集中的類型。

(3)非托管代碼可以使用托管類型(服務器)

clr的執行模型(下)