【问题标题】:How to implement WCF Callbacks using a proxy class library and VB6 client如何使用代理类库和 VB6 客户端实现 WCF 回调
【发布时间】:2011-04-13 08:37:15
【问题描述】:

我们有一个用作触摸屏覆盖的应用程序。它提供自定义触摸屏键盘和数字键盘,位于需要键盘输入的其他应用程序的顶部。

它是作为独立的 VB6 ActiveX EXE 编写的,并为应用程序提供 COM 接口,以便在需要时请求显示键盘等。使用 SendInput API 将按钮按下从触摸服务器反馈给应用程序。

我被要求考虑使用 WPF 重新处理此覆盖,同时也考虑改进覆盖与使用它的应用程序之间的链接。除了单独的按键之外,我们还希望能够拥有代表 URL 或产品代码等内容的按钮。

新的叠加层将使用 WPF 用 C# 编写,将使用它的应用程序都使用 VB6 编写。我正在寻找有关如何最好地在它们之间实现双向通信的建议。

我的第一个想法是在叠加层中托管 WCF 服务并使用回调协定。应用程序将注册到覆盖层并通过回调合约接收与覆盖层按钮推送相关的通知。

客户端都是 VB6 应用程序,因此需要使用代理 dll 来封装服务接口。我可以允许客户端通过此接口注册/注销,但我不确定如何使用代理实现回调。

另外客户端应用程序和覆盖可能会运行一段时间,我如何确保通信是持久和稳定的?

感谢您就与此方法相关的任何潜在问题/解决方案提出的任何意见。或者,如果您认为 WCF 是错误的选择,我很乐意考虑其他选项吗?

【问题讨论】:

    标签: c# wcf vb6


    【解决方案1】:

    您是否打算创建一个 COM DLL 作为 WCF 的包装器,然后在 VB6 中使用该对象?

    如果是这样,那么您可以让 DLL 处理回调,然后像往常一样在 COM 接口上引发一个事件,您在 VB6 应用程序中使用 WithEvents 对象处理该事件。

    在我看来,为此使用 WCF 是一种合理的方法,尤其是当您在多个版本之间进行转换时。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多