适用于Azure Function 2.0的ServiceBusTrigger绑定属性

时间:2018-10-05 11:26:55

标签: c# azure azure-functions

我正在尝试将ServiceBusTrigger for Azure函数2.0属性绑定为:Properties IDictionary作为输入参数,如下所示:

 public static class Function1
{
    [FunctionName("Function1")]
    public static void Run([ServiceBusTrigger("topic-name", "subscription-name", Connection = "connection-string")]string mySbMsg, string  messageId, string correlationId, IDictionary<string,object> properties, ILogger log)
    {
        log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
    }
}

我遇到错误:

  

Microsoft.Azure.WebJobs.Host:错误索引方法'Function1.Run'。   Microsoft.Azure.WebJobs.Host:无法将参数'properties'绑定到IDictionary`2类型。确保绑定支持参数类型。如果使用绑定扩展(例如ServiceBus,Timer等),请确保已在启动代码(例如config.UseServiceBus(),config.UseTimers()等)中调用了扩展的注册方法。 )。

我使用的来源是:https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus文档。

MessageId和CorrelationId可以正常工作。如何获取:属性 IDictionary <<字符串,对象>> 应用程序特定的消息属性?

1 个答案:

答案 0 :(得分:1)

对于v2函数,元数据Properties已更改为UserProperties,请参阅相关的codedoc

  

contract.Add(“ UserProperties”,typeof(IDictionary));

您可以使用IDictionary<string,object> userProperties