我有一个由servicebus触发的方法:
public static async Task Run([ServiceBusTrigger(
"antrox-topic",
"antrox-subscritpion",
Connection = "ServicebusConnectionString")]string message,
IDictionary<string, object> UserProperties,
ILogger log)
如何在不使用TryGetValue的情况下获取UserProperties的值?我们可以绑定值吗?
假设我知道UserProperties
有一个名为SourceParty
的密钥,我可以简单地将方法签名更改为以下内容吗:
public static async Task Run([ServiceBusTrigger(
"antrox-topic",
"antrox-subscritpion",
Connection = "ServicebusConnectionString")]string message,
IDictionary<string, object> UserProperties,
string SourceParty, //change made here <-----------
ILogger log)
答案 0 :(得分:2)
不支持此功能,首先这是一个自定义属性,不是服务总线消息属性,然后您可以检查ServiceBusTriggerBinding.cs
,找到所有受支持的绑定。
这里是binding code,在这里您可以找到一些未在文档中列出的绑定,例如MessageReceiver,但是没有自定义属性或相关绑定,因此您必须使用UserProperties
绑定或绑定消息转到Message
类,然后从Message类获取UserProperties。