azure 获取Service Bus触发器中队列上消息的标签属性

mwg9r5ms  于 2022-11-30  发布在  其他
关注(0)|答案(1)|浏览(139)

传统上,当消息被发送到队列时,它具有特定的类型,因此可以很容易地将其反序列化为特定的类型
但是,我现在需要将两种完全不同类型的消息发送到同一个队列

[FunctionName("MyFunction")]
public async Task QueueMessageReceivedAsync(
        [ServiceBusTrigger("%QueueName%", Connection = "event-bus-connection")]
        string mySbMsg)
{
    //If message.Label == "MessageType1"
    {
        var messageType1Object = JsonConvert.DeserializeObject<MessageType1>(mySbMsg);
                var okResponse = await ProcessMessageType1(messageType1Object);
        return okResponse;
    }
    else
    {
        var messageType2Object = JsonConvert.DeserializeObject<MessageType2>(mySbMsg);
        var okResponse = await ProcessMessageType(messageType2Object);
        return okResponse;
    }
}

这种方法不起作用,因为我不知道如何访问底层服务总线消息的label属性?
无论如何,我都不能更改消息本身,但底层服务总线消息的标签将允许我正确处理消息
有人能帮忙吗?
保禄

xoshrz7s

xoshrz7s1#

以前可以定义额外的参数来获取系统属性。string label来检索标签和消息数据。另外,无论.NET版本如何,您都可以接收Message(如果Functions SDK太旧,则为BrokeredMessage)并访问标签属性。

相关问题