我正在跟踪this documentation为服务总线队列创建触发器。
我希望能够访问邮件属性。我以为我可以像这样简单地将Dictionary<string, object> properties
添加到参数列表中:
public static void Run(
[ServiceBusTrigger(QueueName, Connection = "connectionSetting")]
// Message message,
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
string ContentType,
Dictionary<string,object> properties,
TraceWriter log)
但是抛出:
错误索引方法“ Program.Run”。 Microsoft.Azure.WebJobs.Host: 无法将参数'properties'绑定为Dictionary`2。确保 绑定支持参数类型。
这里是a list个可能的参数绑定。我怎么了?
更新:
我尝试将单数更改为
public static void Run(
[ServiceBusTrigger(QueueName, Connection = "connectionSetting")]
// Message message,
string myQueueItem,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
string ContentType,
IDictionary<string, object> properties,
TraceWriter log)
它会产生相同的错误:
错误索引方法“ Program.Run”。 Microsoft.Azure.WebJobs.Host: 无法将参数“属性”绑定到IDictionary类型
答案 0 :(得分:1)
对于功能v2运行时,参数名称已更改为pygame.draw.rect(window, Color, pygame.Rect(xpos, ypos, particle_size, particle_size)
要解决该错误,请将参数更新为以下内容:
UserProperties
这是服务总线扩展中的相关代码。
答案 1 :(得分:0)
IDictionary<string, object> properties
更新:
对于版本2,使用以下绑定:
public static void Run(
[ServiceBusTrigger(QueueName, Connection = "connectionSetting")]
Message message,
string label,
Int32 deliveryCount,
DateTime enqueuedTimeUtc,
string messageId,
string ContentType,
ILogger log)
{
log.LogInformation($"C# ServiceBus queue trigger function processed message: {Encoding.UTF8.GetString(message.Body)}");
var userProperties = message.UserProperties;
}