2014-09-28 2 views
1

Я пытаюсь отправить сообщение с кода Python на C# через ZeroMQ. Я использую следующую структуру данных в Python:Распаковка созданного Python MessagePack в C# приводит к тому, что «Unpacker не находится в заголовке массива»

message = msgpack.packb(
    (
     {"message_id": "1001", "type": "GET", "namespace": "DocumentManager"}, 
     "MdiActiveDocument", 
     ["parameter1", "parameter2"] 
    ) 
) 
message = msgpack.packb(message) 
alive_socket.send(message) 

Попытка распаковать его с помощью C#, используя следующий код:

 var message = new byte[500]; 
     int result = this.Client.Receive(message); 
     var serializer = 
     MessagePackSerializer.Get<Tuple<Dictionary<string,string>, String, List<String>>>(); 
     var reply = serializer.UnpackSingleObject(message); 

Это приводит к ошибке:

Additional information: Unpacker is not in the array header. 
The stream may not be array. 

У меня есть попробовал упростить структуру данных, но я все еще не могу понять это правильно. Возможно, мое использование MsgPack ошибочно. Заранее благодарю за любую помощь.

ответ

0

Обновление: настоящая причина была много, намного глупее, чем это объяснение, которое я удалил. Я дважды называет packb() в исходном коде.