1

考虑使用 Windows 消息传递,我需要在 ac# 服务和正在运行的 vb 6 应用程序之间传递数据。如何在 C# 服务和正在运行的 vb 6 应用程序之间来回传递数据?我来回传递的数据的缩短样本如下:

namespace MainSection
{
    public struct Info
    {

    private int _Id;
    private string _TypeCode;
    private float _Calc;
    private DateTime _ProcessDate;
    private bool _ProcessFlag;

    public int Id
    {
        get { return _Id; }
        set { _Id = value; }
    }

    public string TypeCode
    {
        get { return _TypeCode; }
        set { _TypeCode = value; }
    }

    public float Calc
    {
        get { return _Calc; }
        set { _Calc = value; }
    }

    public DateTime ProcessDate
    {
        get { return _ProcessDate}
        set { _ProcessDate = value; }
    }

    public bool ProcessFlag
    {
        get { return _ProcessFlag}
        set { _ProcessFlag = value; }
    }
   }
}
4

3 回答 3

2

WCF 是 Microsoft 目前推荐的用于构建需要跨平台互操作的应用程序的技术。有一个 MSMQ 绑定(我认为这是您所指的“Windows 消息传递”),它将允许您在一对 MSMQ 队列上发送和接收消息。MSMQ 类也作为 COM 对象公开,因此 VB6 应用程序也可以从队列中读取和写入。您需要在 .NET 中使用正确的 DataContract 属性来标记您的数据传输对象,您甚至可以避免将您的 .NET 对象公开为 COM 对象,而不必重复自己。

于 2010-04-11T00:09:12.193 回答
1

您可以使用任何 .NET 语言围绕 C# 服务编写包装器,然后将包装器公开为 COM 对象。然后可以从 VB6 应用程序中使用它。让 C# 服务托管 WCF 服务,然后让包装器使用“添加服务引用”作为客户端访问它。

于 2010-04-11T00:17:51.427 回答
0

我同意 John Saunders 通过 COM 公开 c# 代码的方法。我还应该补充一点,相反的情况也可以,如果您习惯了 VB6,可能会更自然。VB6 COM 组件很容易被 c# 代码使用。

于 2010-04-11T01:15:32.863 回答