簡體   English   中英

如何在C#中使用MessagePack序列化混合類型對象數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM