创建用于COM 应用程序的.NET 类

一。COM 可调用类的先决条件

1.创建Class Library项目

2.在.NET 代码中,显式定义一个接口,并实现该接口。
  对于 COM 客户端,通过接口实现功能有一个很大的好处。
  生成 CCW(COM 可调用包装) 时,.NET 与以前版本保持接口一致。
  这有助于避免 .NET 服务器的更改破坏 COM 客户端。

3.任何对于 COM 客户端可见的类都必须声明为公共类。
  创建 CCW 的工具只定义基于公共类的类型。相同的规则也适用于将被 COM 客户端使用的方法、属性和事件。

4.设置项目属性
  4.1 Application->Assembly Information->勾选“Make assembly COM-Visible”
  4.2 Build->勾选“Register for COM interop”[勾选此项,编译后直接生成tlb文件。如果不在本机发布,不用勾选。]

对于那些包含将被 COM 使用的类的 .NET 程序集,还应该考虑用密钥对签名。Microsoft 将这称为用强名称 给程序集签名。用强名称给程序集签名有助于 .NET 确保程序集中的代码在程序集发布之后未被更改过。尽管未签名的程序集也能被 COM 客户端调用,但是签名对所有全局程序集 是必需的(全局程序集是将被多个客户端共享的程序集)。


二。使用 .NET 框架 SDK 中的程序集注册工具 (regasm),创建并注册类型库。如:
  regasm.exe Client.Console.dll /tlb:Client.Console.tlb

参考资料:

互操作性:从 COM 组件调用 .NET 组件(.NET 开发(通用)技术文章)
http://msdn.microsoft.com/zh-cn/library/ms973800.aspx

程序集注册工具 (Regasm.exe)
http://msdn.microsoft.com/zh-cn/library/tzat5yw6.aspx

posted @ 2011-01-31 15:46  Jack Tang  阅读(456)  评论(0编辑  收藏  举报