1

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

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

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

我可以使用 Thrift、Protocol Buffers 或任何其他工具来解码不是由同一工具编码的二进制数据吗?你能就如何做到这一点给出任何建议吗?

谢谢

4

1 回答 1

2

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

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

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

于 2012-03-09T19:43:10.083 回答