自訂封送處理
封送處理器實質上提供了新、舊介面功能之間的橋接。 自訂封送處理可以讓設計配合舊介面使用的用戶端,也能夠配合只實作新介面的伺服器使用。 自訂封送處理也能讓建置來配合新介面使用的用戶端,能夠配合公開舊介面的伺服器使用。
除了使用 Interop 封送處理器之外,您也可以對採用不同封送處理行為或以不同方式向元件物件模型 (COM) 公開介面的介面,設計自訂封送處理器。 藉由使用自訂封送處理器,您可以盡量縮小新的 .NET Framework 元件與現有 COM 元件之間的差異。
例如,假設您要開發一個稱為 INew 的 Managed 介面。 當這個介面透過標準 COM 可呼叫包裝函式向 COM 公開的時候,它擁有與 Managed 介面同樣的方法,並且使用內建於 Interop 封送處理器的封送處理規則。 現在,再假設有個稱為 IOld、眾所周知的 COM 介面,已經提供了與 INew 介面同樣的功能。 藉由採用自訂封送處理器,您可以提供 IOld 的 Unmanaged 實作,它僅僅是將呼叫委派給 INew 介面的 Managed 實作。 這個自訂封送處理器實質上就是 Managed 和 Unmanaged 介面之間的橋接。
請注意,在僅限分派的介面上進行從 Managed 端到 Unmanaged 端的呼叫時,並不會叫用自訂封送處理器。
相關主題
標題 |
描述 |
---|---|
描述如何準備設定自訂封送處理器的介面。 |
|
描述準備自訂封送處理器的選項。 |
|
描述如何使用 MarshalAsAttribute 屬性來插入自訂封送處理器。 |
|
描述 COM Interop 和平台叫用的封送處理 (Marshaling)。 |