自定义标准包装

更新:2007 年 11 月

本主题说明用来自定义标准运行库可调用包装和 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 公开程序集中的哪些类型。

请参见

任务

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

概念

COM 包装

运行库可调用包装

COM 可调用包装

应用 Interop 属性

参考

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

MSIL 反汇编程序 (Ildasm.exe)

其他资源

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

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