自訂執行階段可呼叫包裝函式
Common Language Runtime 會從 Interop 組件的中繼資料 (Metadata) 中產生執行階段可呼叫包裝函式 (Runtime Callable Wrapper,RCW)。 不像其他組件,Interop 組件是透過匯入型別程式庫所產生的。 雖然匯入過程通常會產生精確的 Interop 組件,但還是會有您可以 (或必須) 修改 Interop 組件以產生自訂 RCW 的情況。
有幾個您會自訂 RCW 的理由,例如:
一或多個型別需要其他的封送處理資訊。
型別程式庫包含許多封送處理器無法辨認的特定型別。
大型的型別程式庫可以包含應用程式所不需要的型別。 透過從 Managed 原始程式碼中建立 Interop 組件,您可以不需要部署不必要的型別。
有了 RCW 原始程式碼 (其包含大型的型別程式庫中的一部分),您可以不需要部署不必要的型別。
如下圖所示,您可以將型別程式庫匯入成為 Managed DLL,而不需要自訂包裝函式 (顯示在左邊)。 或者,您可以建立自訂的包裝函式。
在匯入的型別程式庫中的封送處理資訊
如果必須以其他或不同的封送處理指示來自訂執行階段可呼叫包裝函式,您有兩個選擇:
編輯 Interop 組件、搜尋有問題的語法,並以替代語法將其取代。 這個選項最適合於次要的封送處理變更。
根據現有的介面定義語言 (IDL) 檔案或型別程式庫,手動建立包裝函式。 以手動方式宣告 COM 型別是一項相當困難的操作,需要有型別程式庫匯入工具 (Tlbimp.exe) 的操作知識、Interop 封送處理器的預設行為和 COM。 當您有特定型別的整個程式庫或需要 RCW 原始程式碼時,最適合使用這個方法。