Я пытаюсь связать ServiceBusTrigger для свойства функций 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: невозможно привязать параметр «свойства» к типу IDictionary`2. Убедитесь, что тип параметра поддерживается привязкой. Если вы используете расширения привязки (например, ServiceBus, таймеры и т. Д.), Убедитесь, что вы вызвали метод регистрации для расширений в коде запуска (например, config.UseServiceBus (), config.UseTimers () и т. Д. .).

В качестве источника я использую: https: / Документация /docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-service-bus.

MessageId и CorrelationId работают нормально. Как получить: Свойства IDictionary << String, Object >> Свойства сообщения, специфичные для приложения?

2
Leszek 5 Окт 2018 в 14:26

1 ответ

Лучший ответ

Для функций версии 2 метаданные Properties были изменены на UserProperties, см. Связанный код и doc.

contract.Add ("Свойства пользователя", typeof (IDictionary));

Вы можете использовать IDictionary<string,object> userProperties.

2
Jerry Liu 27 Окт 2018 в 10:37