Azure Logic App中Execute CSharp Script Code动作返回数据及结果消费咨询
在Azure Logic App的Execute CSharp Script Code动作中返回数据并消费结果
一、从C#脚本返回数据到工作流
无需依赖设计器中的特殊配置界面,直接在C#脚本内通过return语句返回可序列化的数据即可,支持多种数据类型:
- 基本类型(字符串、数字、布尔值等)
- 自定义匿名/强类型对象
- 数组、List等集合类型
示例代码
- 返回字符串:
return "脚本处理完成的结果内容";
- 返回自定义对象:
return new { OrderId = "ORD-2024-001", Status = "已处理", ProcessedAt = DateTime.UtcNow };
- 返回集合:
return new List<object> { new { Id = 1, Name = "产品A" }, new { Id = 2, Name = "产品B" } };
注意:返回的数据必须支持JSON序列化,避免返回未标记可序列化的复杂类、非托管对象等无法序列化的类型。
二、后续步骤消费脚本执行结果
脚本执行完成后,其输出会作为该动作的结果存储,后续步骤可通过以下方式访问:
1. 直接选择动态内容
在后续动作的输入框中,打开动态内容面板,找到对应的Execute CSharp Script Code动作:
- 若返回基本类型,直接选择
Result字段; - 若返回对象,面板会展开
Result下的所有属性,直接选择目标属性(如Result OrderId); - 若返回集合,可将
Result字段拖入循环动作(如For each)中遍历每一项。
2. 使用表达式访问
如果需要复杂逻辑处理,可通过表达式语法访问结果,格式如下:
@{body('Execute_CSharp_Script_Code')?['属性名']}
例如,获取自定义对象的Status属性:
@{body('Execute_CSharp_Script_Code')?['Status']}
遍历集合时,循环内可通过items('循环动作名称')访问当前项的属性,如:
@{items('For_each')?['Name']}
3. 空值处理
使用?运算符可避免空值引发的报错,例如当属性可能不存在时,写法为:
@{body('Execute_CSharp_Script_Code')?['可选属性']}
内容的提问来源于stack exchange,提问作者Chris Harrington
相关产品推荐
相关产品推荐

