2012-08-15 73 views
1

我想知道是否可以通過Winforms可執行文件公開COM接口,而不必創建類庫DLL?我有,我想用戶能夠從VBScript和使用代碼,如其他語言召喚小的交互式應用:從VB.Net暴露COM接口Winforms應用程序

設置USBDAQ =的CreateObject(「USBDAQ.Control」) USBDAQ.TakeSample()

我可以創建一個獨立的類庫,並使用IPC的形式與主應用程序交談,但我寧願不添加額外的複雜性。我知道這種方法可能具有可靠性優勢,但它不一定非常強大。

+1

您正在尋求一個進程外服務器,.NET並沒有很好的支持。沒有像樣的方式讓服務器註冊併發布你的班級工廠。通常的方法是COM +託管,但不允許UI的afaik。你最好用WCF或Remoting來做這件事。 – 2012-08-15 06:01:57

+0

感謝漢斯救了我看得更遠。由於需求非常簡單,我決定使用System.IO.Pipes,因爲命名管道很容易從VBS中使用。 WCF似乎是一個很好的選擇,我將來會記住任何需要更強大/更復雜的選項。 – PeterJ 2012-08-16 05:07:04

+0

@Hans Passant - 當我發佈這個問題時,我很新,但是您的評論回答了我的問題,如果您希望發佈答案,我會將其標記爲已接受,因此問題已關閉。否則,如果你不願意,我會等待一個星期左右,然後回覆自己。 – PeterJ 2012-12-09 12:17:59

回答

1

感謝Hans Passant對他的評論,我很快發現,.NET確實對實現COM進程外服務器沒有很好的支持。經過研究,他對WCF或Remoting的建議似乎是最適合大多數應用程序的。

因爲我的要求是如此簡單我結束了使用System.IO.Pipes因爲命名管道很容易從VBS在一個方向上使用的,我只需要在一個方向上發送簡單的請求。