创建用于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