0
令我試圖反序列化,我在一個字節數組,像這樣的MsgPack包:C#/ MsgPack.CLI:反序列化
47 52 209 0 144 209 0 144 72 86 54 195 209 66 73
而且我想要得到它進入這個類型的對象:
public class Info
{
public byte wX;
public byte wY;
public Int16 wMXCount;
public Int16 wMYCount;
public byte wMZCount;
public byte wMRegionZ;
public byte wZ;
public bool m;
public Int16 tkn;
}
我使用MsgPack.CLI嘗試反序列化所看到here。
static public T Deserialize<T>(byte[] bytes)
{
var serializer = MessagePackSerializer.Get<T>();
using (var byteStream = new MemoryStream(bytes))
{
return serializer.Unpack(byteStream);
}
}
,然後用
Info mi2;
mi2 = Deserialize<Info>(bytes); //bytes is the byte array that contains the MsgPack
運行它,不幸的是MI2就像是一個新創建的信息,並且不包含任何從MsgPacket數據。如果有人對如何實現這一目標有所瞭解,這將非常棒。
非常感謝!
更新
我做了一個假信息,並試圖模仿類似於上面的數據進行處理和序列化它自己。我得到的首先是前面153個(固定陣列有9個元素的id),這是有道理的,我已經忘記了這一點,但元素的順序也不同。
看起來它們按字母順序排列!有沒有一種方法來映射/反序列化它們,就像它們在類中排序一樣,或者是否必須將我的字段名稱更改爲awX,bwY,cwMXCount ...是否有某個標記以某種方式反序列化它們?
寫得很好的第一個問題。但不是編輯它來包含答案,最好[回答你自己的問題](http://stackoverflow.com/help/self-answer)。這樣其他讀者可以很快得知問題已經解決。 – dbc
@dbc謝謝。不知道回答你自己的問題是可能的,並且正在尋找一個「解決」按鈕。我現在已經提交了答案,並會盡快將其標記爲解決方案 – Lucahk