当前位置: 首页 > 知识库问答 >
问题:

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

庾远航
2023-03-14

我使用协议缓冲区在c和c#客户机-服务器应用程序之间发送和接收数据。我用protobuf网来解决这个问题。我有两个原始文件,一个请求命令和一个响应命令。我能够将命令从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个答案

韦欣德
2023-03-14

我终于明白了。我没有考虑客户端返回的实际接收字节大小。读取命令。在那之后,我还倒回了MemoryStream,感谢@neil danson

 类似资料:
  • 我从 REST API 获得以下 JSON 作为响应。 并尝试使用下面的代码进行解析,但这不会导致正确的反序列化类型。 下面是我在JSON响应中收到的字段的类。 缺少了什么?

  • 代码试图采用java.awt.color类使用jackson对象映射器对其进行序列化。获取生成的json字符串并将其反序列化回java.awt.color类。但是在进行反序列化时会出现以下错误。 线程"main"com.fasterxml.jackson.databind.JsonMappingException中的异常:找不到适合类型[简单类型,类java.awt.颜色]的构造函数:无法从JSO

  • 我试图反序列化javax.ws.rs.core.MultiValuedHashMap。 MultivaluedHashMap实现java.io.Serializable,并且有一个公共的、没有arg构造函数。 提前感谢你的帮助。

  • 我试图调用一个Spring Cloud Data Flow REST Endpoint,它应该返回一个任务的所有执行列表,该任务的名称在输入中传递。 首先,我在浏览器中运行了以下网址: 浏览器上显示了以下JSON: 接下来,我尝试通过Java调用同一个RESTendpoint;然而,无论我尝试什么,响应对象似乎都是空的,没有填充任何属性: 方法1:创建自定义域类来反序列化响应。(不工作。响应中收到

  • 问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是