目标C和C#之间任意对象的二进制序列化

本文关键字:对象 二进制 序列化 任意 之间 目标 | 更新日期: 2023-09-27 18:30:10

我们希望在Objective C和C#之间高效地传递一个林-一个具有值的字典,这些值可以是:字典、数组、集合、数字、字符串、字节缓冲区(从时间上讲,空间是一个较小的问题)。谷歌的协议缓冲区看起来不错,但它们似乎只处理结构化数据,而我们的是任意的。最终,我们可以自己编写一个二进制(去)串行器,但这肯定是以前做过的,并在某个地方作为自由源码软件发布了吗?

目标C和C#之间任意对象的二进制序列化

您是否考虑过使用ASN.1?由于ASN.1独立于编程语言或系统体系结构,因此无论您需要C、C#、C++还是Java,都可以有效地使用它。

您可以创建要交换的信息的描述,并使用ASN.1工具为您的目标编程语言生成编码器/解码器。ASN.1还支持一些不同的数据传输规则,从高效的PER(压缩编码规则)到详细但灵活的XER(XML编码规则)。

要玩ASN.1,看看这是否适用于您,请尝试免费的在线ASN.1编译器和编码器/解码器,网址为http://asn1-playground.oss.com看看这是否对你有用。