当我想解码死信的x-first-dead-queue
属性时,我得到了以下错误:Argument 1: cannot convert from 'object' to 'byte[]'
个
这是一个新的死信到达时运行的代码:
consumer.Received += async (model, ea) =>
{
var body = ea.Body.ToArray();
var message = Encoding.UTF8.GetString(body);
var originalQueueHeader = ea.BasicProperties.Headers["x-first-death-queue"];
var originalQueue = Encoding.UTF8.GetString(originalQueueHeader);
};
消息解析良好,但originalQueue抛出cannot convert from 'object' to 'byte[]'
错误。
1条答案
按热度按时间af7jpaap1#
为了对消息进行解码,需要将
object{byte[]}
转换为byte[]
。例如,如果要获取
x-first-dead-queue
,则需要执行以下操作:这样,
object{byte[]}
将转换为byte[]
。若要将字串取得为可读取的文字,请执行下列动作:
这可以在任何一个头文件上实现。如果你想在一个数字头文件(
x-delivery-count
)上实现,那么就像下面这样简单:然后返回deliveryCount