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下的示例。这里的关键点是,如果您在原始套接字级别工作,则需要在消息之间添加某种分区(因为 TCP 只是一个流)。该示例通过使用这些*WithLengthPrefix方法来执行此操作。

然而,在许多情况下,您可能能够使用已经包含消息分区的预滚动 RPC / 消息传递实现;在这种情况下,您不需要使用这些*WithLengthPrefix方法(尽管欢迎您这样做)。

于 2013-05-28T12:45:45.367 回答