向 COM 公开 .NET 组件

对开发人员而言,编写 .NET 类型以及从非托管代码使用该类型是不同的活动。 本部分介绍编写与 COM 客户端互作的托管代码的几个提示:

  • 使 .NET 类型能够进行互操作

    要向 COM 公开的所有托管类型、方法、属性、字段和事件都必须是公共的。 类型必须具有公共无参数构造函数,这是唯一可以通过 COM 调用的构造函数。

  • 应用互操作属性

    托管代码中的自定义属性可以增强组件的互作性。

  • 将 COM 的程序集打包

    COM 开发人员可能需要汇总引用和部署程序集所涉及的步骤。

此外,本部分还确定了从 COM 客户端使用托管类型的相关任务。

从 COM 使用托管类型

  1. 向 COM 注册程序集

    程序集中的类型(和类型库)必须在设计时注册。 如果安装程序未注册程序集,请指示 COM 开发人员使用 Regasm.exe。

  2. 从 COM 引用 .NET 类型

    COM 开发人员可使用当前使用的相同工具和技术引用程序集中的类型。

  3. 调用 .NET 对象

    COM 开发人员可以调用 .NET 对象上的方法,就像在任意非托管类型上调用方法一样。 例如,COM CoCreateInstance API 激活 .NET 对象。

  4. 部署用于 COM 访问的应用程序

    具有强名称的程序集可安装在全局程序集缓存中,并向其发布者请求签名。 不具有强名称的程序集必须安装在客户端的应用程序目录中。

另请参阅