1

Windows Messaging の使用を考慮して、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 Messaging" と呼ばれるものだと思います)。これにより、一対の 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

COM 経由で C# コードを公開するという John Saunders のアプローチに同意します。また、逆も機能することを付け加えておく必要があります。VB6 に慣れている場合は、より自然かもしれません。VB6 COM コンポーネントは、C# コードで簡単に使用できます。

于 2010-04-11T01:15:32.863 に答える