mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-05 17:20:47 +08:00
通过Emit优化Script脚本的解释执行;出于后期更新的方向,暂时隐藏表达式节点、条件表达式节点、全局数据节点;流程图转c#代码新增对于Script脚本的支持,Script脚本现在可以原生导出为C#代码。
This commit is contained in:
@@ -3,6 +3,7 @@ using Serein.Library.Utils;
|
||||
using Serein.NodeFlow.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
@@ -45,6 +46,14 @@ namespace Serein.Workbench.Node.ViewModel
|
||||
{
|
||||
NodeModel.ReloadScript(); // 工作台重新加载脚本
|
||||
});
|
||||
|
||||
CommandGenerateCode = new RelayCommand(o =>
|
||||
{
|
||||
var info = NodeModel.ToCsharpMethodInfo($"Test_{nodeModel.Guid.Replace("-","_")}"); // 工作台重新加载脚本
|
||||
if (info is null) return;
|
||||
SereinEnv.WriteLine(InfoType.INFO, $"{info.ClassName}.{info.MethodName}({string.Join(",", info.ParamInfos.Select(i => $"global::{i.ParameterType.FullName} {i.ParamName}"))})");
|
||||
SereinEnv.WriteLine(InfoType.INFO, info.CsharpCode);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -58,6 +67,11 @@ namespace Serein.Workbench.Node.ViewModel
|
||||
/// </summary>
|
||||
public ICommand CommandExecuting { get; }
|
||||
|
||||
/// <summary>
|
||||
/// 生成c#代码
|
||||
/// </summary>
|
||||
public ICommand CommandGenerateCode { get; }
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user