无法使用protobuf-net在C#中反序列化

时间:2015-04-14 14:17:54

标签: c# c++ serialization

我正在使用协议缓冲区在c ++和c#客户端服务器应用程序之间发送和接收数据。我正在使用protobuf-net。 我有两个原型文件,一个请求命令和一个响应命令。我能够将命令从c#客户端发送和反序列化到c ++服务器。但是我无法在c#中反序列化。 我在c#中获取字节数据但是我得到空响应命令。 考虑代码如下所示:

    proto.ResponseCommand rsp = new proto.ResponseCommand ();
    using (var data = new MemoryStream ())
    {
    data.write (buffer,0,buffer.length);
    rsp = Serializer.Deserialize<proto.ResponseCommand> (data); 
    }

我在缓冲区中以字节为单位获取数据但在响应命令中没有反序列化。

1 个答案:

答案 0 :(得分:0)

我终于明白了。我没有考虑client.Read命令返回的实际接收字节大小。 之后我还回放了MemoryStream,感谢@neil danson