是否有相当于.NET中的进程外COM EXE?

时间:2009-03-03 01:27:12

标签: .net com activex

关于COM / ActiveX的一个好处是进程外EXE。您可以拥有一个EXE,它可以在其他进程(包括VBScript和JScript)可用的表单中公开方法和属性。同时,EXE可以拥有自己的功能,与其类型库公开的功能相关或无关。

什么是.NET等价物?

我有一个现有的VB6项目,它是一个脚本语言解释器(使用MSScript)和其他脚本语言的各种工具函数的资源。有人建议我尝试将其转换为.NET。

这是否会起作用,或者我最终会将一个项目分成两个?

3 个答案:

答案 0 :(得分:4)

企业服务将允许您这样做。您可以将COM组件运行为:

  • DLLHost进程
  • 服务
  • inproc库(这与其他代码的过程相同)

互联网上有很多关于这些的例子。它归结为:

  • 使用Interfaces
  • 装饰需要向COM公开的类
  • 您要托管的组件需要从ServicedComponent
  • 中获取
  • 使用GuidAttribute(使用独特的Guid)
  • 装饰您的界面
  • 使用ComVisible(true)属性
  • 装饰暴露给COM的接口和类

希望这有帮助。

答案 1 :(得分:3)

对于.NET 2.0,.NET对应关系为.NET Remoting,对于3.0+,.NET对应关系为WCF。但是,如果需要与COM对象进行通信,则必须创建一个COM暴露的对象。那里有很多教程。

答案 2 :(得分:1)

这有几个选择;最明显的是serviced components;这允许您在COM +中托管托管代码以在单独的进程中运行它,但是您需要GAC / COM可调用等。