将多个参数传递给Azure Durable Function

问题描述 投票:0回答:1

尝试使用“速记”元组从 HttpTrigger 函数将多个参数传递到 Azure Durable Orchestrator 函数:

var param1 = Guid.NewGuid().ToString();
var param2 = Guid.NewGuid().ToString();
// Function input comes from the request content.
string instanceId = await client.ScheduleNewOrchestrationInstanceAsync(nameof(Function1), (param1, param2));

然后在我的 Orchestrator 功能中再次获取它们

var (param1, param2) = context.GetInput<(string, string)>();

但是 param1 和 param2 只是 null.... 如果我将代码更改为“正常元组”:

var param1 = Guid.NewGuid().ToString();
var param2 = Guid.NewGuid().ToString();
// Function input comes from the request content.
string instanceId = await client.ScheduleNewOrchestrationInstanceAsync(nameof(Function1), Tupele.Create(param1, param2));

var (param1, param2) = context.GetInput<Tuple<string, string>>();

参数传递正确。

我做错了什么吗?根据文档,使用“速记元组”应该可以..

Env:
Target framework:         net8.0
AzureFunctionsVersion     v4
Mode:                     Isolated mode
Core Tools Version:       4.0.5455 Commit hash: N/A  (64-bit)
Function Runtime Version: 4.27.5.21554
azure-durable-functions
1个回答
0
投票

简写语法实际上转换为值元组,并且它们使用字段而不是属性。当从元组访问

ItemX
时,您可以看到这一点,简写将是字段图标,并且
Tuple.Create()
的输出将具有 prop 图标。

我认为问题在于序列化器默认情况下不会序列化字段,因此它会被忽略,因此它总是为空。

© www.soinside.com 2019 - 2024. All rights reserved.