Я следовал примеру, нацеленному на функции v1, и чего я хочу от него, я не смог воспроизвести в v2.
Я хочу получить BrokeredMessage в подписи функции Azure.
public static async Task WhatIsTheTime(
[ServiceBusTrigger(queueName: QueueName, Connection = ConnectionStringKey)]
BrokeredMessage message,
ILogger log)
{
var myObj = message.GetBody<MyType>();
// whatever
}
в первую очередь потому, что он содержит много удобных метаданных, и я cba менять подпись каждый раз, когда решаю, что хочу что-то другое.Кроме того, поскольку, как показывает приведенный выше пример, получить тело довольно просто.
Тем не менее, кажется, что любая из готовых настроек, которые у меня есть, просто взбешена этой идеей.Я хочу, чтобы я:
public static async Task WhatIsTheTime(
[ServiceBusTrigger(queueName: QueueName, Connection = ConnectionStringKey)]
MyType myObj,
ILogger log)
{
// whatever
}
и сделал для меня этот первый шаг.
Если я сделаю это, все будут счастливы, и мы все сможем пойти домой.Однако я не хочу этого, я бы предпочел полное BrokeredMessage.
Независимо от того, как я пытался упаковать содержимое тела, оно с треском проваливалось до выполнения моего кода, давая мне множество различных ошибок (в зависимости ото том, как я его упаковал) но показательно;вот этот:
Exception while executing function: Exception binding parameter Expecting element 'BrokeredMessage'
Где он пытается десериализовать ТЕЛО BrokeredMessage в BrokeredMessage!
Что дает?Я читал статьи, в которых говорится, что размещение BrokeredMessage в подписи облегчает эту задачу.Я пропускаю опцию конфигурации или что-то?