2009-03-03 51 views
7

关于COM/ActiveX的好处之一是进程外EXE。你可以有一个EXE,它以两种其他进程可用的形式公开了方法和属性,包括VBScript和JScript。与此同时,EXE可以拥有自己的功能,与其类型库提供的功能相关或无关。在.NET中是否有与EX-Out-of-process COM EXE相当的功能?

什么是.NET等价物?

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

这是行得通还是最终将一个项目拆分为两个?

回答

4

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

  • 一个DLLHost进程
  • 服务
  • 一个inproc库(这是在同一进程中的其他代码)

有许多例子在互联网上关于这些。什么它归结为是:

  • 装饰你的类,你需要暴露在COM与接口
  • 要举办需要的组件从ServicedComponent中
  • derrived与GuidAttribute装饰你的接口(使用一个唯一的GUID)
  • 装饰暴露于COM,与标记有ComVisible特性(真正的接口和类)属性

希望这有助于。

3

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

1

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

相关问题