自訂標準包裝函式

這個主題描述用來自訂標準執行階段可呼叫包裝函式和 COM 可呼叫包裝函式的程序。

執行階段可呼叫包裝函式

當 .NET 用戶端啟動 COM 物件時,執行階段會產生執行階段可呼叫包裝函式 (RCW) 的執行個體來包裝 COM 型別。 如下圖所示,執行階段使用了從匯入 COM 型別程式庫取得的中繼資料來產生 RCW。 這個包裝函式則是依據 Interop 封送處理服務建立的規則來封送處理資料。

RCW 產生和方法呼叫

自訂標準包裝函式

有兩種方式可以自訂 RCW。 如果您可以修改介面定義語言 (IDL) 原始程式碼,您可以套用型別程式庫檔案 (TLB) 屬性,並且匯入型別程式庫。 要不然,您可以將 Interop 專屬屬性套用至匯入型別,並且產生新的組件。 對自訂標準 RCW 的支援會受這些屬性的限制。 如需相關說明,請參閱 HOW TO:自訂執行階段可呼叫包裝函式

COM 可呼叫包裝函式

COM 可呼叫包裝函式 (CCW) 會將 .NET Framework 物件公開給 COM。 藉由將 Managed 專案編譯成為組件 DLL,您可以自動地建立描述組件中每種型別所需的中繼資料。 每當 COM 用戶端啟動 Managed 物件時,執行階段便會使用中繼資料來產生 CCW。

若要自訂 CCW,請將 Interop 專屬屬性套用至 Managed 原始程式碼,並將原始程式碼編譯成為組件,如下圖中所示。 在這個範例中,Tlbexp.exe 會將 Managed 型別轉換為 COM。

CCW 產生和方法呼叫

自訂標準包裝函式

藉由將屬性套用至程式碼,您可以改變 Interop 封送處理服務範圍內的介面和資料封送處理行為。 例如,您可以控制做為引數傳遞給方法之資料的格式。 您也可以控制組件中的哪些型別要公開給 COM。

請參閱

工作

HOW TO:自訂執行階段可呼叫包裝函式

參考

Tlbimp.exe (型別程式庫匯入工具)

Ildasm.exe (MSIL 反組譯工具)

概念

COM 包裝函式

執行階段可呼叫包裝函式

COM 可呼叫包裝函式

套用 Interop 屬性

其他資源

型別程式庫至組件轉換的摘要

組件至型別程式庫轉換的摘要