解码不是由同一工具编码的二进制协议消息

时间:2012-03-09 18:24:10

标签: c# protocol-buffers decoding decoder

我需要解码由此示例结构表示的二进制数据(C#):

struct Message
{
    byte id;
    int type;
    bool valid;
}

示例二进制数据:0x040000000201,其中id = 4,type = 2,valid = true;

我可以使用Thrift,协议缓冲区或任何其他工具来解码未由同一工具编码的二进制数据吗? 你能否对这方面的任何提及?

谢谢

1 个答案:

答案 0 :(得分:2)

不,基本上。它们被设计为独立于平台的通用序列化工具,每个工具都遵循预定义的协议(/ wire-format),这意味着:标准用户通常不需要知道或关心数据的样子 - 这是工具的工作把它抽象出来。

在您的情况下,预定义的线格式不太可能与任何此类工具类似。您将需要一个更具体的工具,允许您指定非常细粒度的协议详细信息,或者您需要编写代码来手动序列化/反序列化。

最终,与“我可以使用JavaScriptSerializer来读取我的XML文档吗?”并没有什么不同。答案很简单:“不; JavaScriptSerializer expecs JSON,无法指定或解释XML细节”。