如何带参数运行Elsa工作流?HelloWorld示例参数读取方法
在Elsa工作流中给HelloWorld传入并读取外部参数
1. 调用工作流时传入参数
你可以通过WorkflowInput对象封装要传递的参数,支持两种传参方式:
方式一:字典形式传参
直接用字典存储键值对参数:
// 创建包含参数的WorkflowInput var input = new WorkflowInput(new Dictionary<string, object> { { "Name", "Elsa新手" } }); // 传入参数并启动工作流 await runner.BuildAndStartWorkflowAsync<HelloWorld>(input);
方式二:强类型对象传参
先定义对应输入的类,再实例化传入:
// 定义输入类 public class HelloWorldInput { public string Name { get; set; } } // 实例化输入对象并传入 var input = new WorkflowInput(new HelloWorldInput { Name = "Elsa新手" }); await runner.BuildAndStartWorkflowAsync<HelloWorld>(input);
2. 在HelloWorld的Build方法中读取参数
在工作流的Build方法里,通过IWorkflowBuilder的GetInput方法读取传入的参数:
读取字典形式的参数
public class HelloWorld : IWorkflow { public void Build(IWorkflowBuilder builder) { // 根据键名读取参数值 var userName = builder.GetInput<string>("Name"); // 使用参数,比如输出问候语 builder.WriteLine($"Hello, {userName}!"); } }
读取强类型参数
如果用了强类型输入类,直接指定类型读取:
public class HelloWorld : IWorkflow { public void Build(IWorkflowBuilder builder) { // 读取强类型输入对象 var input = builder.GetInput<HelloWorldInput>(); // 使用参数 builder.WriteLine($"Hello, {input.Name}!"); } }
内容的提问来源于stack exchange,提问作者carlosm
相关产品推荐
相关产品推荐

