自定义标准包装

本主题说明用来自定义标准运行时可调用包装和 COM 可调用包装的过程。

运行时可调用包装

当 .NET 客户端激活 COM 对象时,运行时就会生成一个运行时可调用包装 (RCW) 实例来包装 COM 类型。 如下图所示,运行时使用从导入的 COM 类型库中获取的元数据来生成 RCW。 该包装将根据互用封送处理服务所建立的规则来封送数据。

生成 RCW 和调用方法

自定义标准包装器

有两种自定义 RCW 的方法。 如果可以修改接口定义语言 (IDL) 源,就可以应用类型库文件 (TLB) 特性并导入类型库。 或者,您可以将互用特定特性应用于导入的类型并生成新的程序集。 是否支持自定义标准的 RCW 将受到这些特性的限制。 有关说明,请参见如何:自定义运行时可调用包装

COM 可调用包装

COM 可调用包装 (CCW) 可向 COM 公开 .NET Framework 对象。 通过将托管项目编译到程序集 DLL 中,可以自动创建在描述程序集中的每个类型时所需的元数据。 每当 COM 客户端激活托管对象时,运行时就会使用此元数据来生成 CCW。

要自定义 CCW,请将互用特定特性应用于托管源代码并将该源编译到程序集中,如下图所示。 在此示例中,Tlbexp.exe 将托管类型转换为 COM。

生成 CCW 和调用方法

自定义标准包装器

通过将特性应用于代码,可以更改互用封送处理服务范围内的接口和数据封送行为。 例如,您可以控制作为参数传递给方法的数据的格式。 还可以控制向 COM 公开程序集中的哪些类型。

请参见

任务

如何:自定义运行时可调用包装

参考

Tlbimp.exe(类型库导入程序)

Ildasm.exe(MSIL 反汇编程序)

概念

COM 包装

运行时可调用包装

COM 可调用包装

应用互操作特性

其他资源

有关从类型库转换到程序集的摘要

有关从程序集转换到类型库的摘要