2009-03-03 34 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可調用的代碼等。

相關問題