首页 > 解决方案 > 通过 SQS 以字符串形式发送 MessagePack

问题描述

我想在 C# 中使用 MessagePack通过 SQS 更有效地发送我的消息。为了向队列发送消息,我需要为 SQS 提供一个字符串。我尝试使用以下代码来实现这一点:

//Serialize and send the string to SQS queue
var xyzBytes = MessagePackSerializer.Serialize(new Xyz { X = "Foo", Y = "Bar" });
var xyzString = Encoding.UTF8.GetString(xyzBytes);

//Receive string from SQS, get bytes and deserialize it
var xyz = MessagePackSerializer.Deserialize<Xyz>(Encoding.UTF8.GetBytes(xyzString));

写入 SQS 的字符串是��Foo�Bar\0(中的值xyzString
不幸的是我收到以下错误:

MessagePack.MessagePackSerializationException: Failed to deserialize Project.Services.MessageHandlers.Xyz value.
 ---> MessagePack.MessagePackSerializationException: Unexpected msgpack code 239 (negative fixint) encountered.

标签: c#amazon-sqsmsgpack

解决方案


推荐阅读