【发布时间】:2012-08-15 04:24:04
【问题描述】:
我想知道是否可以通过 Winforms 可执行文件公开 COM 接口,而不必创建类库 DLL?我有一个小型交互式应用程序,我希望用户能够使用以下代码从 VBScript 和其他语言调用:
设置 USBDAQ = CreateObject("USBDAQ.Control") USBDAQ.TakeSample()
我可以创建一个单独的类库并使用一种 IPC 形式与主应用程序通信,但我不想增加额外的复杂性。我知道这种方法可能具有可靠性优势,但它不必特别强大。
【问题讨论】:
-
您要求的是进程外服务器,.NET 对此没有很好的支持。没有合适的方法来注册服务器并发布您的类工厂。通常的方法是 COM+ 托管,但 afaik 不允许 UI。最好使用 WCF 或 Remoting 执行此操作。
-
感谢 Hans 让我看得更远。因为需求非常简单,我决定使用 System.IO.Pipes,因为命名管道在 VBS 中很容易使用。 WCF 似乎是一个不错的选择,对于任何需要更健壮/复杂的东西,我会牢记在心。
-
@Hans Passant - 当我发布问题时,我在这里很新,但您的评论回答了我的问题,如果您想发布作为答案,我将标记为已接受,因此问题已关闭.否则,如果您不愿意,我会等待一周左右,然后按照自己的回答发布。