.NET中是否有类似于独立的进程COM EXE的等效物?

9
COM/ActiveX的一个优点是可以创建独立的EXE进程。这样,其他进程(包括VBScript和JScript)就可以使用EXE中公开的方法和属性。同时,该EXE还可以具有自己的功能,与其类型库公开的相关或无关。
那么.NET有没有类似的功能呢?
我有一个现有的VB6项目,它是一个脚本语言解释器(使用MSScript),并为其他脚本语言提供各种工具函数。有人建议我尝试将其转换为.NET。
这样做可行吗?还是我最终会将一个项目分成两个?
3个回答

4
企业服务可以帮助您实现这一目标。您可以将COM组件运行为以下形式之一:
  • DLLHost进程
  • 服务
  • inproc库(与其他代码在同一进程中)
网络上有很多关于这些的示例。它归结为以下几点:
  • 使用接口装饰需要公开给COM的类
  • 要托管的组件必须派生自ServicedComponent
  • 使用GuidAttribute(使用唯一的Guid)装饰接口
  • 使用ComVisible(true)属性装饰向COM公开的接口和类
希望这能帮到您。

3
.NET 2.0使用.NET Remoting,3.0+版本则使用WCF进行通讯。但如果需要与COM对象通信,则必须创建一个公开COM的对象。有很多相关教程可供参考。

1

有几种选项可供选择;最明显的是服务组件;这允许您将托管代码托管在COM+中以在单独的进程中运行它,但需要GAC/COM-callable等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接