自定义封送处理概述

更新:2007 年 11 月

封送拆收器实质上是提供了新旧接口功能之间的互用渠道。自定义封送拆收器使您设计的客户端既能够与旧接口协同工作,也能与仅实现新接口的服务器协同工作。自定义封送拆收器还使所生成的客户端既能够与新接口协同工作,也能与公开旧接口的服务器协同工作。

除了使用互用封送拆收器之外,还可以为接口设计自定义封送拆收器,以引入不同的封送处理行为或以不同的方式向 COM 公开接口。通过使用自定义封送拆收器,您可以尽量减小新 .NET 组件和现有 COM 组件之间的差异。

例如,假设您在开发一个名为 INew 的托管接口。当通过标准的 COM 可调用包装向 COM 公开时,该接口具有与托管接口相同的方法,并且采用内置于互用封送拆收器中的封送处理规则。进一步假设有一个名为 IOld 的已知 COM 接口已经提供了与 INew 接口相同的功能。通过引入自定义封送拆收器,可以提供 IOld 的非托管实现,它只需将调用委托给 INew 接口的托管实现。自定义封送拆收器实质上充当了托管和非托管接口之间的互用渠道。

注意,在仅调度接口上从托管端向非托管端进行调用时,并不调用自定义封送拆收器。

请参见

概念

定义封送处理类型

实现 ICustomMarshaler 接口

使用替换封送拆收器