protobuf-net 使用什么基本序列化程序来输出字节数组?

What base serializer does protobuf-net use to output byte array?

protobuf-net 是否使用 BinaryFormatter 或其他格式化程序作为基本序列化程序将对象序列化为 byte[],然后写入流?

添加:

我使用protobuf-net序列化数据,想在golang中反序列化,有没有序列化器可以在go中完成这项工作?

Protobuf-net 是 "Protocol Buffers" 序列化格式的基础实现,具有惯用的 .NET API。它与 BinaryFormatter 无关(尽管它可以 使用 创建自定义 ISerializable 实现以供 BinaryFormatter,如果你还在那个世界玩的话)。

如果你想在 Go 中使用 Protocol Buffers (protobuf),只需从 this list 中选择一个 Go 实现即可。

大多数 protobuf 库是 "contract first",意思是:你需要一个 .proto 模式;要从 protobuf-net 获取它,请使用 Serializer.GetProto<T>() 作为您用作根类型的 T

注意:如果您正在序列化 DateTimeTimeSpan,最好确保您在这些成员上使用 DataFormat.WellKnown - 它会成功 更容易以跨平台的方式与其他库一起工作;但请注意,这 不是 数据兼容的更改:它从根本上改变了这些值的存储方式,因此:如果您有现有数据,则需要考虑迁移策略。