[英]How to serialize an mixed type object array using MessagePack in C#
我有一個通過TCP / IP方法通信的應用程序,需要將一些數據序列化到設備上。
在應用程序中,我想序列化混合類型的對象數組,其中包括字符串,雙精度數組和一些整數..etc。 例如,我想在以下位置序列化數據:
數據= [大小,mainmsg]; 其中size是一個int16,而mainmsg是一個字符串。
我查看了以下參考資料http://wiki.msgpack.org/display/MSGPACK/QuickStart+for+C+Sharp
在我看來,如果我的對象數組中有字符串,則BoxingPacker在解壓時將引發異常。
我想問一下,如果我有一個混合類型的對象數組[5,“ D1”],使用msgpack(在c#中)進行序列化的最佳方法是什么? (此軟件包是經過設計的,不能更改其他序列化方法)
現在,我使用BoxingPacker打包我的整數,並使用ObjectPacker打包我的字符串,例如:
size = 1;
msg = "D1"
BoxingPacker intpacker = new BoxingPacker();
packedsize = intpacker.Pack(size);
ObjectPacker packer = new ObjectPacker();
packedmsg = packer.Pack<String>(msg);
然后,我使用Buffer.BlockCopy將二進制數據(packedsize + packedmsg)組合在一起。
我在尋找是否有簡單的方法來做到這一點? 也許我缺少了一些東西,但是除了上面粘貼的鏈接之外,我找不到任何文檔。 任何指導表示贊賞。
您只需要序列化對象數組
size = 1;
msg = "D1"
object[] objs = new object[] { size, msg };
ObjectPacker packer = new ObjectPacker();
packedmsg = packer.Pack<object[]>(objs);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.