在protobuf-net中我可以有一个字节字段吗?

时间:2011-07-24 15:30:37

标签: c# protocol-buffers protobuf-net

在protobuf-net中我可以有一个字节字段吗?字节数组字段是协议缓冲区规范的一部分吗?

基本上我想通过电线传输各种物体。在这种情况下,byte [] Payload将是另一个协议缓冲区序列化对象。我这样做所以我不需要具体的类型

感谢

public sealed class CellUpdateTransmission
{
    public int RowIndex { get; private set; }
    public int CellIndex { get; private set; }          
    public byte[] Payload {get;private set;}

2 个答案:

答案 0 :(得分:1)

是的,你可以。在第二阶段,将字节移动到内存流中,然后按正常方式反序列化。

            byte[] Payload= datafromsomewhere;
            var ms = new MemoryStream(Payload);
            var req = Serializer.Deserialize<AbcClass>(ms);

答案 1 :(得分:1)

是的,支持bytebyte[];后者映射到.proto规范中的bytes。这实际上与无论如何通常表示子消息的方式相同。只需让序列化程序了解该成员(最简单:通过添加[ProtoMember(3)]等属性。)