2013-04-06 2 views
3

Я прочитал документацию msgpack-cli quick start.Как использовать MessagePack в C#?

Я также получил пакет NuGet C# (CLI) (v0.3).

Ни один из классов (например, BoxingPacker, CompiledPacker или ObjectPacker), упомянутых в официальной документации, не существует в пакете NuGet (!!). Я предполагаю, что документация осталась сиротой.

У кого-нибудь есть примеры, как сериализовать/десериализовать в/из MessagePack внутри C#? Я пытаюсь сделать это для объекта, и меня интересует двоичный характер сериализатора.

ответ

7

Для будущих читателей: Я бы пойти с Avro или протокола буферы или даже бережливость над 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); 
    } 
} 

Всем R & типа D проект, с результатами, находится на https://github.com/sidshetye/SerializersCompare и й e специальные вызовы функций: here.

+0

Другой вариант рассмотреть: fastBinaryJSON (http://www.codeproject.com/Articles/345070/fastBinaryJSON) –

-1

Установите пакет с именем MsgPack из NuGet. Смотрите рис здесь:

enter image description here

0

В последних версиях 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); 
0

Я удивлен, что никто не понял, что спросил пользователь. Существует так много пакетов nuget для msgpack, и это действительно запутывает, какой из них использовать и как включать в проекты. Я предполагаю, что пользователь хотел знать, как включить msgpack в проект .net, как и я.

Install MessagePack for CLI from Nuget packages 

, а затем включают в себя, как этот

using MsgPack.Serialization; 

 Смежные вопросы

  • Нет связанных вопросов^_^