using Serein.Library; using Serein.Library.Api; using System; using System.Collections.Generic; using System.Dynamic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Serein.NodeFlow.Model.Nodes { /// /// 单脚本节点(用于脚本控件) /// [FlowDataProperty(ValuePath = NodeValuePath.Node, IsNodeImp = true)] public partial class SingleNetScriptNode : NodeModelBase { /// /// 脚本代码 /// [DataInfo(IsNotification = true)] private string _script = string.Empty; /// /// 功能提示 /// [DataInfo(IsNotification = true)] private string _tips = "写一下提示吧"; /// /// 依赖路径 /// [DataInfo(IsNotification = true)] private List _libraryFilePaths = []; } public partial class SingleNetScriptNode { /// /// 表达式节点是基础节点 /// public override bool IsBase => true; /// /// 脚本代码 /// /// public SingleNetScriptNode(IFlowEnvironment environment) : base(environment) { this.Env = environment; } /// /// 导出脚本代码 /// /// /// public override NodeInfo SaveCustomData(NodeInfo nodeInfo) { dynamic data = new ExpandoObject(); data.Script = this.Script ?? ""; nodeInfo.CustomData = data; return nodeInfo; } /// /// 加载自定义数据 /// /// public override void LoadCustomData(NodeInfo nodeInfo) { this.Script = nodeInfo.CustomData?.Script ?? ""; // 更新变量名 //for (int i = 0; i < Math.Min(this.MethodDetails.ParameterDetailss.Length, nodeInfo.ParameterData.Length); i++) //{ // this.MethodDetails.ParameterDetailss[i].Name = nodeInfo.ParameterData[i].ArgName; //} } } }