elsa C# 表达式

在使用 Elsa 时,您经常需要编写动态表达式。本页提供了您可以使用的 C# 表达式的词汇表。

Elsa 使用 Roslyn 实现 C# 表达式评估器。

常见表达式

开箱即用,所有类型都已从 SystemSystem.Linq 命名空间注册。

活动输出

以下函数特定于处理活动输出。

函数 描述 示例
Output.Get(string, string?): object? 通过活动名称获取活动的输出。 Output.Get("HttpEndpoint1")
Output.LastResult: object? 获取最后一个结果。 Output.LastResult

工作流变量和输入

以下函数特定于处理工作流变量和输入。

函数 描述 示例
Variables.Get(string): object? 从工作流中获取变量。 Variables.Get("MyVariable")
Variables.Set(string, object?): void 在工作流中设置变量。 Variables.Set("MyVariable", "myValue")
Variables.{VariableName}: object? 在工作流上获取或设置变量。 Variables.MyVariable
Input.Get(string): object? 获取工作流的输入。 Input.Get('name')

工作流变量

从工作流中获取变量有两种方式:

  • Variables.Get("MyVariable")
  • Variables.MyVariable

第一种方法在构建时不知道变量名称时非常有用。第二种方法在构建时知道变量名称时非常有用,额外的好处是提供智能感知。

类似地,设置工作流中的变量也有两种方式:

  • Variables.Set('MyVariable', "myValue");
  • Variables.MyVariable = "myValue";

工作流输入

要获取工作流的输入,请使用 Input.Get(string) 函数。

例如,如果您运行一个工作流并提供以下输入:

{
  "input": {
    "name": "Alice"
  }
}

您可以使用以下表达式获取 name 字段:

Input.Get("name")

工作流相关

这些函数和属性特定于与工作流交互。

函数或属性 描述 示例
WorkflowInstanceId: string 获取工作流实例的 ID。 WorkflowInstanceId
CorrelationId: string 获取或设置工作流实例的关联 ID。 CorrelationId
在本文档中