0

protobuf-net シリアル化とソケット接続を使用して、2 台のマシン間でコレクションを転送する方法の完全な例を探しています。私が見つけることができたのはコードの別々の部分だけであり、これらすべてを組み合わせる方法を私のような初心者に説明できる人は誰もいません。.proto ファイルに続いて:

using System;
using ProtoBuf;

namespace Proto.Transaction
{    
    [Serializable]
    [ProtoContract]
    public class Transaction
    {
        [ProtoMember(1)]
        public int Type { get; set; }

        [ProtoMember(2)]
        public int AgentID { get; set; }

        [ProtoMember(3)]
        public string TransactionName { get; set; }

        [ProtoMember(4)]
        public string ScriptName { get; set; }

        [ProtoMember(5)]
        public DateTime StartTime { get; set; }

        [ProtoMember(6)]
        public double TransactionLength { get; set; }
    }
}

最後に、これを Observable Collection として受け取り、DataSet として設定する必要があります (XML として保存して DataGrid に表示するため)。ネット上の適切な資料へのヘルプやリンクをいただければ幸いです。よろしく

4

1 に答える 1

2

最も基本的なレベルでは、 QuickStart/3 Sockets.csの下の例を見ることができます。ここでの重要な点は、raw ソケット レベルで作業している場合は、メッセージ間に何らかのパーティショニングを追加する必要があるということです (TCP は単なるストリームであるため)。このサンプルでは、*WithLengthPrefix​​メソッドを使用してこれを行います。

ただし、多くの場合、メッセージ パーティショニングが既に含まれている、事前にロールされた RPC / メッセージ パッシングの実装を使用できる場合があります。その場合、メソッドを使用する必要はありません*WithLengthPrefix(使用しても構いません)。

于 2013-05-28T12:45:45.367 に答える