Common Language Runtime 中的組件

組件是 .NET Framework 應用程式的建置組塊;它們構成部署、版本控制、重複使用、啟動過程 (Activation) 範圍設定和安全性使用權限的基本單位。 組件是建置來共同運作及構成一個功能邏輯單位的型別和資源的集合。 組件為 Common Language Runtime 提供了讓它察知型別實作所需的資訊。 對於執行階段而言,型別不會存在於組件的內容以外。

組件可以執行以下功能:

  • 它包含 Common Language Runtime 執行的程式碼。 在可攜式執行檔 (PE) 中的 Microsoft Intermediate Language (MSIL) 程式碼,如果沒有與組件資訊清單 (Assembly Manifest) 關聯將不會被執行。 請注意,每個組件都只能有一個進入點 (Entry Point) (也就是 DllMain、WinMain 或 Main)。

  • 它可構成安全性界限。 組件是被要求和授予使用權限的單位。 如需安全性界限套用至組件的詳細資訊,請參閱組件安全性考量

  • 它可構成型別界限。 每種型別的識別 (Identity) 都包括該型別所在之組件的名稱。 在某個組件範圍中載入的型別 MyType 與在另一個組件範圍中載入的型別 MyType 是不同的。

  • 它可構成參考範圍界限。 組件的資訊清單含有用來解析型別和滿足資源要求的組件中繼資料。 它會指定公開於組件之外的型別和資源。 資訊清單也會列舉它所依賴的其他組件。

  • 它可構成版本界限。 組件是 Common Language Runtime 中最小的可訂版本單位;在同一組件中的所有型別和資源都當做一個單位編訂版本。 組件的資訊清單會描述您對任何相依組件所指定的版本相依性。 如需有關版本的詳細資訊,請參閱組件版本控制

  • 它可構成部署單位。 當應用程式啟動時,只有這個應用程式一開始所呼叫的組件必須存在。 其他組件 (例如當地語系化資源或含有公用程式類別的組件) 可視需要擷取。 這樣可以讓應用程式在一開始被下載時保持簡單、輕便。 如需部署組件的詳細資訊,請參閱部署應用程式

  • 它是支援並存執行的單位。 如需執行組件多個版本的詳細資訊,請參閱組件和並存執行

組件可以是靜態的,也可以是動態的。 靜態組件可以包括 .NET Framework 型別 (介面和類別) 以及組件的資源 (點陣圖、JPEG 檔案、資源檔等)。 靜態組件存放在磁碟上的可攜式執行檔 (PE) 中。 您也可以使用 .NET Framework 建立直接從記憶體執行而且在執行前並未儲存至磁碟的動態組件。 您可以在動態組件執行之後將它們儲存到磁碟。

建立組件有好幾種方式。 您可以使用過去用來建立 .dll 或 .exe 檔案的開發工具,例如 Visual Studio 2005。 您也可以使用 Windows Software Development Kit (SDK) 提供的工具,使用其他開發環境中建立的模組來建立組件。 您也可以使用 Common Language Runtime API (例如 Reflection.Emit) 來建立動態組件。

相關主題

標題

說明

組件的優點

描述組件如何協助您解決版本問題和 DLL 衝突。

組件內容

描述構成組件的項目。

組件資訊清單

描述組件資訊清單中的資料,以及這些資料是如何儲存在組件中。

全域組件快取

描述全域組件快取以及如何配合組件使用它。

強式名稱的組件

描述強式名稱組件的特性。

組件安全性考量

討論安全性如何使用組件。

組件版本控制

提供 .NET Framework 版本控制原則的概觀。

組件定位

討論放置組件的位置。

組件和並存執行

提供同時使用執行階段或組件的多個版本的概觀。

使用組件設計程式

說明如何建立、簽名和設定組件上的屬性。

發出動態方法和組件

說明如何建立動態組件。

執行階段如何找出組件

描述 .NET Framework 如何在執行階段中解析組件參考。

參考資料

System.Reflection.Assembly