命令执行后,可以吧命令的执行结果保持到变量里,以便后续的命令或逻辑使用。
可以通过实现ResultToPropertyAttribute来实现此效果。
示例代码:
注意:标注 ResultToProperty 的属性类型必须是 string。推荐给属性添加默认值,以方便用户使用。
public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync { [FormulaProperty] [DisplayName("加数1")] public object AddNumber1 { get; set; } [FormulaProperty] [DisplayName("加数2")] public object AddNumber2 { get; set; } [ResultToProperty] [DisplayName("相加结果")] public string ResultTo { get; set; } = "结果"; public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext) { var add1 = await dataContext.EvaluateFormulaAsync(AddNumber1); var add2 = await dataContext.EvaluateFormulaAsync(AddNumber2); double.TryParse(add1?.ToString(), out var add1Number); double.TryParse(add2?.ToString(), out var add2Number); dataContext.Parameters[ResultTo] = add1Number + add2Number; return new ExecuteResult(); } public override CommandScope GetCommandScope() { return CommandScope.ExecutableInServer; } }
设计器中的效果:
在后续命令编辑公式时,设置的变量可以直接在公式中使用。