自定义标准包装
更新: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 公开程序集中的哪些类型。