传统上,当消息被发送到队列时,它具有特定的类型,因此可以很容易地将其反序列化为特定的类型
但是,我现在需要将两种完全不同类型的消息发送到同一个队列
[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属性?
无论如何,我都不能更改消息本身,但底层服务总线消息的标签将允许我正确处理消息
有人能帮忙吗?
保禄
1条答案
按热度按时间xoshrz7s1#
以前可以定义额外的参数来获取系统属性。
string label
来检索标签和消息数据。另外,无论.NET版本如何,您都可以接收Message
(如果Functions SDK太旧,则为BrokeredMessage
)并访问标签属性。