【问题标题】:Exposing a COM interface from a VB.Net Winforms application从 VB.Net Winforms 应用程序公开 COM 接口
【发布时间】: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 - 当我发布问题时,我在这里很新,但您的评论回答了我的问题,如果您想发布作为答案,我将标记为已接受,因此问题已关闭.否则,如果您不愿意,我会等待一周左右,然后按照自己的回答发布。

标签: vb.net com


【解决方案1】:

感谢 Hans Passant 的评论,我很快发现 .NET 确实对实现 COM 进程外服务器没有很好的支持。经过研究,他对 WCF 或 Remoting 的建议似乎最适合大多数应用程序。

因为我的要求非常简单,我最终使用了 System.IO.Pipes,因为命名管道很容易从 VBS 单向使用,我只需要在单向发送简单请求。

【讨论】:

    猜你喜欢
    • 2014-07-03
    • 2013-05-06
    • 1970-01-01
    • 2012-01-04
    • 2016-03-10
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多