【发布时间】:2021-12-21 15:19:15
【问题描述】:
我知道我已经接近完成这项工作,但我错过了一些东西(希望是一些非常简单的东西)。我有一个函数需要将对象列表传递到 Azure foreach 循环。该对象包含将用于生成电子邮件的信息。所有代码都在工作,但我无法在 foreach 中遍历它(它只是将列表视为 1 个对象并且只发送第一封电子邮件)
results.Add(new EmailModel()
{
EmailMainRecipient = "craig@email.com",
EmailCCRecipients = string.Empty,
EmailTitle = "Test1",
EmailMessage = "Test1"
});
为了便于讨论,我只执行上述 3 次以创建 3 条记录,这些记录由函数作为 json 对象返回(所有这些都有效)。我认为我缺少标记的地方是我的 foreach 的“项目”。我正在使用:
@array(activity('Craig_TestingForEach').output.Response)
foreach 仅将其视为 1 个对象,并且仅处理 1 封电子邮件(即使我已将其中 3 个作为 EmailModel 列表传入 - 并且 foreach 内部函数的输入确实显示了所有 3 个)。将该列表传递给 foreach 以便它将“Craig_TestingForEach”的输出视为 EmailModel 对象的数组并分别处理每个对象的正确方法是什么?
感谢您的任何指点!
编辑:如果有帮助...这就是我从“Craig_TestingForEach”返回列表的方式
return new ObjectResult(results);
该函数可能会产生任意数量的结果...我刚才以 3 为例。
这就是 EmailHandler 函数正在接收的内容。
"[{\"emailMainRecipient\":\"craig@email.com\",\"emailCCRecipients\":\"\",\"emailTitle\":\"Test1\",\"emailMessage\":\"Test1\"},
{\"emailMainRecipient\":\"craig@email.com\",\"emailCCRecipients\":\"\",\"emailTitle\":\"Test2\",\"emailMessage\":\"Test2\"},
{\"emailMainRecipient\":\"craig@email.com\",\"emailCCRecipients\":\"\",\"emailTitle\":\"Test2\",\"emailMessage\":\"Test2\"}]"
【问题讨论】:
标签: azure foreach azure-functions parameter-passing