C# 创建标准COM组件
1、定义接口及实现
using System;
using System.Runtime.InteropServices;
namespace MYLib
{
//建立接口
[Guid("61BB24CB-4C2C-40f8-9E13-1AC5E558D56A")]
public interface IMyInterface
{
void Read();
void Write();
}
// 写接口的实现
[Guid("CB52E990-185E-4448-A7E8-C88ECAD563AB")]
public class 类名称 :System.EnterpriseServices.ServicedComponent,IMyInterface
{
public void Read()
{
……
}
public void Write()
{
……
}
}
}
2、项目属性设置——应用程序输出类型ClassLibrary
3、项目属性设置——程序集信息选中COM可见
4、项目属性设置——编译:注册为COM互用
5、为程序集添加强名称文件
生成强名称文件的方法:使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符
在命令行内输入
cd c:\ <回车>
sn -k myKey.snk<回车>
就在C盘根目录下生成一个名叫myKey.snk的强名称文件
6、生成COM
(1)vs中直接编译
(2)通过命令行编译
regasm /tlb MYLib.tlb MYLib.dll<回车>
regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 MYLib.dll 中的类对 COM 客户端可用 。
7、注册COM
如果在VS里编译后com组件将直接注册到本机中,但在新的环境中需使用.NET 服务安装工具 (Regsvcs.exe)进行注册,而不能使用regsvr32。
RegSvcs.exe /reconfig MYLib.dll