我閱讀了msgpack-cli quick start文檔。我還得到了C#(CLI)NuGet包(v0.3)。如何在C#中使用MessagePack?
NuGet包(!!)中沒有任何類(例如BoxingPacker
,CompiledPacker
或ObjectPacker
)在官方文檔中提到。我假設文檔已經成爲孤兒。
那麼有沒有人有例子如何序列化/反序列化/從MessagePack C#內?我試圖爲一個對象做這件事,並且對序列化器的二進制特性感興趣。
我閱讀了msgpack-cli quick start文檔。我還得到了C#(CLI)NuGet包(v0.3)。如何在C#中使用MessagePack?
NuGet包(!!)中沒有任何類(例如BoxingPacker
,CompiledPacker
或ObjectPacker
)在官方文檔中提到。我假設文檔已經成爲孤兒。
那麼有沒有人有例子如何序列化/反序列化/從MessagePack C#內?我試圖爲一個對象做這件事,並且對序列化器的二進制特性感興趣。
未來的讀者:我用的Avro或Protocol Buffers的,甚至超過節儉基於MessagePack上these results去...
對於具體的緣故問題的關鍵部分是:
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);
}
}
整個ř& d類型的項目,其結果是在https://github.com/sidshetye/SerializersCompare和第具體的函數調用是here。
我找到一個例子: http://www.irisclasson.com/2012/12/17/serializing-and-deserializing-packingunpacking-to-a-file-andor-memorystream-with-messagepack-in-c/ 我在我的代碼中測試它,並通過zmq發送Byte []數據到另一個主機。 它的工作原理。
從NuGet安裝名爲MsgPack的軟件包。看到這裏的圖片:
在msgpack-cli的最新版本中,Create
方法與MessagePackSerializer.Create<T>();
中的標記爲過時。
用法示例作爲項目的github page可能會給出:
// Creates serializer.
var serializer = SerializationContext.Default.GetSerializer<T>();
// Pack obj to stream.
serializer.Pack(stream, obj);
// Unpack from stream.
var unpackedObject = serializer.Unpack(stream);
我很驚訝,沒有人明白了什麼的用戶要求。 msgpack有很多nuget軟件包,它真的讓人困惑,哪一個使用以及如何包含在項目中。我假設用戶想知道如何在我的.net項目中包含msgpack。
Install MessagePack for CLI from Nuget packages
然後包括像這樣
using MsgPack.Serialization;
另一個值得考慮的選擇:fastBinaryJSON(http://www.codeproject.com/Articles/345070/fastBinaryJSON) – 2014-12-17 04:21:19