2011-07-24 22 views
1

在protobuf-net我可以有一個字節字段?協議緩衝區規範是字節數組字段的一部分嗎?在protobuf網我可以有一個字節字段?

基本上我想通過電線傳輸各種對象。在這種情況下,byte [] Payload將是另一個協議緩衝區序列化對象。我這樣做,所以我不需要specificy型

感謝

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

回答

1

當然可以。在第二階段,將字節移入內存流,然後按照正常情況反序列化。

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

是的,無論是bytebyte[]支持;後者映射到.proto規範中的bytes。這實際上與通常表示子消息的方式相同。只需讓序列化程序瞭解該成員(最簡單:通過添加一個屬性,如[ProtoMember(3)])。

+0

字節字段映射到.proto規範中的任何東西嗎?或者我需要找到一種不同的方法來反序列化用字節字段寫入的二進制數據?謝謝! – Dawson

+0

@Toolbox一個字節?或許多字節? varint(用於int/uint)對於0-127需要1個字節,對於128-255需要2個字節; 'bytes'乾淨地映射到多個字節。 –

相關問題