编程语言
首页 > 编程语言> > 如何在C#中使用MessagePack?

如何在C#中使用MessagePack?

作者:互联网

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

我还得到了C#(CLI)NuGet包(v0.3).

NuGet包(!!)中没有官方文档中提到的类(例如BoxingPacker,CompiledPacker或ObjectPacker).我假设文档已经成为孤儿.

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

解决方法:

对于未来的读者:基于these results,我将使用Avro或Protocol Buffers甚至是基于MessagePack的Thrift ……

为了具体问题,关键部分是:

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.

标签:c,net,serialization,messagepack
来源: https://codeday.me/bug/20190613/1229552.html