繁体   English   中英

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

[英]Unable to Deserialize in C# using protobuf-net

我正在使用协议缓冲区在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); 
    }

我在缓冲区中获得了以字节为单位的数据,但在响应命令中未将其反序列化。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM