我阅读了msgpack-cli quick start文档。

我还获得了C#(CLI)NuGet软件包(v0.3)。

NuGet包(!!)中没有官方文档中提到的所有类(例如BoxingPackerCompiledPackerObjectPacker)。我认为文档已被孤立。

那么,有没有人有示例如何在C#中对MessagePack进行序列化/反序列化?我正在尝试为一个对象执行此操作,并且对序列化程序的二进制性质感兴趣。

最佳答案

对于 future 的读者:我会使用Avro或 Protocol Buffer ,甚至基于these results的Thrift over MessagePack ...

为了特定的问题,关键部分是:

public byte[] Serialize<T>(T thisObj)
{
    var serializer = MessagePackSerializer.Create<T>();

    using (var byteStream = new MemoryStream())
    {
        serializer.Pack(byteStream, thisObj);
        return byteStream.ToArray();
    }
}

public T Deserialize<T>(byte[] bytes)
{
    var serializer = MessagePackSerializer.Create<T>();
    using (var byteStream = new MemoryStream(bytes))
    {
        return serializer.Unpack(byteStream);
    }
}

整个R&D类型的项目,其结果在https://github.com/sidshetye/SerializersCompare处,而特定的函数调用在here处。

10-06 10:25