2012-08-15 33 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在一个方向上使用的,我只需要在一个方向上发送简单的请求。