通过Emit优化Script脚本的解释执行;出于后期更新的方向,暂时隐藏表达式节点、条件表达式节点、全局数据节点;流程图转c#代码新增对于Script脚本的支持,Script脚本现在可以原生导出为C#代码。

This commit is contained in:
fengjiayi
2025-07-26 19:36:54 +08:00
parent 9a8de6b571
commit 29f2be5c80
32 changed files with 2175 additions and 432 deletions

View File

@@ -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; }
}