1.界说接口
Com是通过抛出接口让外部运用调用的,每个接口、组件都有一个Guid,在.Net中开发Com组件也不破例。
[Guid(“0bb13346-7e9d-4aba-9ff2-862e0105489a”)]
public interface IMyService
{
//界说接口办法或许特点,每个办法或特点都有一个DISPID特点,供VBScript等运用
[DispId( 1 )]
void Method1( args … );
}
2.完成接口的派生类
//Guid特点界说组件的Guid
//ProgID界说Com组件的ProgID
[Guid(
ba0a3019-f0d8-4406-8116-f80d5515c686 ) ,
ProgId(ClassNamespace.MyService),
ClassInterface(
ClassInterfaceType.None)]
public class
MyService : IMyService
{
…… //完成代码部分
}
3.将.Net装配件转换为公有装配件
(1)创立强姓名
sn –k mykey.snk
并将强姓名拷贝到工程目录下面
在AssembyInfo.cs修正对应的装备
[assembly: AssemblyKeyFile(“../../mykey.snk”)]
(2)导出类型库
为了在VB中运用,有必要运用tlbexp.exe导出Com类型库。
tlbexp SisCalLib.dll /out:SisCalLib.tlb
(3注册装配件
RegAsm MyService.dll
(4)将装配件参加GAC
gacutil -i MyService.dll
留意:该过程不是有必要的。
(5)在AssembyInfo.cs修正COM对外可见性装备
// 将 ComVisible 设置为 false 使此程序会集的类型
// 对 COM 组件不行见。假如需要从 COM 拜访此程序会集的类型,
// 则将该类型上的 ComVisible 特点设置为 true。
[assembly: ComVisible(true)]
// 假如此项目向 COM 揭露,则下列 GUID 用于类型库的 ID
[assembly: Guid(e011ed16-93a3-41aa-8375-399fa259b935)]
通过上面的作业,就将一个.NET装配件转化为COM组件。
4.在VB中调用生成的COM组件(dll)
1)工程->引证
2)创立目标调用