From 152077e9b5b9569b3578799b429639639f5df2be Mon Sep 17 00:00:00 2001
From: fengjiayi <12821976+ning_xi@user.noreply.gitee.com>
Date: Wed, 30 Jul 2025 21:15:07 +0800
Subject: [PATCH] =?UTF-8?q?1.=20=E9=87=8D=E6=96=B0=E8=AE=BE=E8=AE=A1?=
=?UTF-8?q?=E4=BA=86Generate=E9=A1=B9=E7=9B=AE=E5=8F=8A=E7=9B=B8=E5=85=B3?=
=?UTF-8?q?=E7=89=B9=E6=80=A7=E7=9A=84=E5=91=BD=E5=90=8D=EF=BC=8C=E9=81=BF?=
=?UTF-8?q?=E5=85=8D=E4=B8=8E=E5=85=B6=E4=BB=96=E7=B1=BB=E5=9E=8B=E6=B7=B7?=
=?UTF-8?q?=E6=B7=86=E3=80=82=202.=20=E8=A1=A5=E5=85=85=E4=BA=86=E9=83=A8?=
=?UTF-8?q?=E5=88=86=E6=B3=A8=E9=87=8A=E3=80=82=203.=20=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E4=BA=86=E5=88=A0=E9=99=A4=E5=AE=B9=E5=99=A8=E8=8A=82=E7=82=B9?=
=?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=AE=B9=E5=99=A8=E5=86=85=E5=AD=90=E8=8A=82?=
=?UTF-8?q?=E7=82=B9=E6=9C=AA=E6=AD=A3=E7=A1=AE=E5=88=A0=E9=99=A4=E7=9A=84?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
FlowStartTool/FlowEnv.cs | 2 +-
Library/Api/IEnumConvertor.cs | 5 +
Library/Api/IFlowContext.cs | 18 +
Library/Api/IFlowControl.cs | 3 +-
Library/Api/IFlowEnvironment.cs | 236 +++++++++--
Library/Api/IFlowNode.cs | 11 +-
Library/Api/IJsonProvider.cs | 4 +-
Library/Api/INodeContainer.cs | 4 +-
Library/Api/IScriptFlowApi.cs | 15 +-
Library/Api/ISereinIoc.cs | 24 ++
Library/Attributes/AutoRegisterAttribute.cs | 7 +
Library/Attributes/BindConvertorAttribute.cs | 11 +
Library/Attributes/BindValueAttribute.cs | 10 +
Library/Attributes/DynamicFlowAttribute.cs | 5 +
.../Attributes/EnumTypeConvertorAttribute.cs | 8 +
Library/Attributes/NodeActionAttribute.cs | 7 +
Library/Enums/ConnectionInvokeType.cs | 2 +-
Library/Enums/ParameterValueInputType.cs | 9 +
Library/Ex/FlipflopException.cs | 10 +
Library/FlowBaseLibrary.cs | 55 ++-
Library/FlowNode/DelegateDetails.cs | 13 +-
Library/FlowNode/FlipflopContext.cs | 22 +
Library/FlowNode/FlowCanvasDetails.cs | 31 +-
Library/FlowNode/FlowContext.cs | 5 +-
Library/FlowNode/FlowResult.cs | 11 -
Library/FlowNode/JunctionModel.cs | 5 +
.../FlowNode/LightweightFlowEnvironment.cs | 356 +++++++++-------
Library/FlowNode/MethodDetails.cs | 40 +-
Library/FlowNode/NodeDebugSetting.cs | 10 +-
Library/FlowNode/NodeMVVMService.cs | 5 +
Library/FlowNode/ParameterDetails.cs | 382 +++++++++---------
Library/FlowNode/SereinProjectData.cs | 6 +-
Library/Properties/launchSettings.json | 8 +
Library/ScriptBaseFunc.cs | 80 +++-
Library/Serein.Library.csproj | 11 +-
Library/Utils/ArrayHelper.cs | 3 +
Library/Utils/ConvertHelper.cs | 8 +
Library/Utils/DynamicObjectHelper.cs | 45 ++-
Library/Utils/EmitHelper.cs | 35 +-
Library/Utils/EnumHelper.cs | 7 +
Library/Utils/ExpressionHelper.cs | 43 +-
.../Utils/FlowTrigger/ChannelFlowTrigger.cs | 27 ++
Library/Utils/FlowTrigger/TaskFlowTrigger.cs | 17 +
Library/Utils/FlowTrigger/TriggerResult.cs | 11 +
Library/Utils/JsonHelper.cs | 39 ++
Library/Utils/LinqHelper.cs | 17 +
Library/Utils/ObjectPool.cs | 32 +-
Library/Utils/SereinIoc.cs | 30 ++
NodeFlow/Env/FlowControl.cs | 11 +-
NodeFlow/Env/FlowEdit.cs | 78 ++--
NodeFlow/Env/FlowEnvironment.cs | 5 +-
NodeFlow/Env/FlowEnvironmentEvent.cs | 76 +++-
NodeFlow/Env/LocalFlowEnvironment.cs | 163 +-------
NodeFlow/FlowNodeExtension.cs | 3 +-
NodeFlow/FlowWorkOptions.cs | 30 +-
NodeFlow/Model/Librarys/FlowLibraryCache.cs | 4 +-
NodeFlow/Model/Librarys/LibraryMdDd.cs | 20 -
NodeFlow/Model/Librarys/LibraryMthodInfo.cs | 39 ++
.../{Node => Nodes}/FlowModelExtension.cs | 92 -----
.../{Node => Nodes}/NodeModelBaseData.cs | 24 +-
.../{Node => Nodes}/NodeModelBaseFunc.cs | 1 -
.../Model/{Node => Nodes}/SingleActionNode.cs | 4 +
.../{Node => Nodes}/SingleConditionNode.cs | 17 +-
.../Model/{Node => Nodes}/SingleExpOpNode.cs | 19 +-
.../{Node => Nodes}/SingleFlipflopNode.cs | 6 +-
.../{Node => Nodes}/SingleFlowCallNode.cs | 26 +-
.../{Node => Nodes}/SingleGlobalDataNode.cs | 22 +-
.../{Node => Nodes}/SingleNetScriptNode.cs | 53 +--
.../Model/{Node => Nodes}/SingleScriptNode.cs | 7 +-
.../Model/{Node => Nodes}/SingleUINode.cs | 19 +-
.../ChangeNodeConnectionOperation.cs | 32 +-
.../ChangeParameterOperation.cs | 2 +-
.../ContainerPlaceNodeOperation.cs | 2 +-
.../ContainerTakeOutNodeOperation.cs | 2 +-
.../CreateCanvasOperation.cs | 2 +-
.../CreateNodeOperation.cs | 2 +-
.../OperationBase.cs | 3 +-
.../RemoveCanvasOperation.cs | 2 +-
.../RemoveNodeOperation.cs | 15 +-
.../SetConnectPriorityInvokeOperation.cs | 2 +-
.../SetStartNodeOperation.cs | 2 +-
NodeFlow/ScriptFlowApi.cs | 21 +-
NodeFlow/Serein.NodeFlow.csproj | 3 +-
NodeFlow/Services/CoreGenerateExtension.cs | 1 +
NodeFlow/Services/FlowApiService.cs | 2 +-
NodeFlow/Services/FlowCoreGenerateService.cs | 14 +-
NodeFlow/Services/FlowLibraryService.cs | 8 +-
NodeFlow/Services/FlowModelService.cs | 98 ++++-
NodeFlow/Services/FlowOperationService.cs | 2 +-
NodeFlow/Tool/AssemblyLoader.cs | 11 +
NodeFlow/Tool/DynamicCompiler.cs | 7 +-
NodeFlow/Tool/LogTextWriter.cs | 14 +-
NodeFlow/Tool/NativeDllHelper.cs | 3 +-
NodeFlow/Tool/NodeMethodDetailsHelper.cs | 46 +--
NodeFlow/Tool/ObjDynamicCreateHelper.cs | 9 +
.../NewtonsoftJsonProvider.cs | 52 ++-
.../NewtonsoftJsonToken.cs | 38 +-
.../Serein.Extend.NewtonsoftJson.csproj | 18 +-
Serein.Library.MyGenerator/Attribute.cs | 9 +-
...erator.cs => FlowDataPropertyGenerator.cs} | 170 ++++----
.../Serein.Library.NodeGenerator.csproj | 6 +-
Serein.Proto.Modbus/ModbusRequest.cs | 4 +-
Serein.Proto.Modbus/ModbusRtuClient.cs | 3 +
Serein.Proto.Modbus/ModbusTcpClient.cs | 7 +
Serein.Proto.Modbus/ModbusUdpClient.cs | 11 +
.../Attributes/AutoSocketModuleAttribute.cs | 6 +-
.../Handle/HandleConfiguration.cs | 18 +-
.../Handle/WebSocketHandleModule.cs | 79 ++--
.../Handle/WebSocketHandleModuleConfig.cs | 6 +-
.../Handle/WebSocketMsgContext.cs | 15 +-
.../Handle/WebSocketMsgHandleHelper.cs | 11 +-
Serein.Proto.WebSocket/TestExtension.cs | 2 +-
Serein.Proto.WebSocket/WebSocketServer.cs | 19 +-
Serein.Script/IScriptInvokeContext.cs | 2 +-
Serein.Script/Node/ASTNode.cs | 2 +-
Serein.Script/Node/FlowControl/ReturnNode.cs | 2 +-
Serein.Script/ScriptInvokeContext.cs | 17 +-
Serein.Script/SereinScriptExtension.cs | 2 +-
Serein.Script/SereinScriptILCompiler.cs | 33 +-
Serein.Script/SereinScriptLexer.cs | 4 +-
Serein.Script/SereinScriptTypeAnalysis.cs | 42 +-
SereinFlow.sln | 12 -
Workbench/Api/INodeJunction.cs | 4 +-
Workbench/App.xaml.cs | 13 +-
.../Converters/BoolToVisibilityConverter.cs | 2 +-
.../Converters/CountToVisibilityConverter.cs | 2 +-
.../Converters/EnumToBooleanConverter.cs | 7 +-
.../InvertableBooleanToVisibilityConverter.cs | 2 +-
.../MethodDetailsSelectorConverter.cs | 2 +-
.../Converters/ThumbPositionConverter.cs | 8 +-
Workbench/Converters/TypeToColorConverter.cs | 2 +-
.../Customs/FlowMethodInfoListBox.xaml.cs | 33 +-
Workbench/Extension/MyExtension.cs | 35 ++
Workbench/LogWindow.xaml.cs | 24 +-
Workbench/Models/TabModel.cs | 31 +-
Workbench/Node/INodeJunction.cs | 2 +-
.../Node/Junction/ConnectionLineShape.cs | 24 +-
.../Node/Junction/JunctionControlBase.cs | 10 +-
Workbench/Node/Junction/JunctionData.cs | 16 +-
.../Node/Junction/View/ArgJunctionControl.cs | 2 +-
.../Junction/View/ExecuteJunctionControl.cs | 2 +-
.../Junction/View/NextStepJunctionControl.cs | 2 +-
.../Junction/View/ResultJunctionControl.cs | 2 +-
Workbench/Node/NodeControlBase.cs | 16 +-
Workbench/Node/NodeControlViewModelBase.cs | 14 +-
Workbench/Node/View/ActionNodeControl.xaml.cs | 4 +
.../Node/View/ConditionNodeControl.xaml.cs | 8 +
Workbench/Node/View/ConnectionControl.cs | 65 +--
Workbench/Node/View/ExpOpNodeControl.xaml.cs | 8 +
.../Node/View/FlipflopNodeControl.xaml.cs | 4 +
.../Node/View/FlowCallNodeControl.xaml.cs | 9 +
Workbench/Node/View/GlobalDataControl.xaml.cs | 22 +
.../Node/View/NetScriptNodeControl.xaml.cs | 3 +-
Workbench/Node/View/ScriptNodeControl.xaml.cs | 9 +-
Workbench/Node/View/UINodeControl.xaml.cs | 12 +-
.../ViewModel/ActionNodeControlViewModel.cs | 7 +
.../ConditionNodeControlViewModel.cs | 2 +-
.../ViewModel/ExpOpNodeControlViewModel.cs | 12 +-
.../ViewModel/FlipflopNodeControlViewModel.cs | 15 +-
.../ViewModel/FlowCallNodeControlViewModel.cs | 4 +
.../GlobalDataNodeControlViewModel.cs | 10 +-
.../NetScriptNodeControlViewModel.cs | 21 +-
.../ViewModel/ScriptNodeControlViewModel.cs | 6 +-
.../Node/ViewModel/UINodeControlViewModel.cs | 6 +-
Workbench/Serein.Workbench.csproj | 6 +-
Workbench/Services/FlowNodeService.cs | 11 +-
Workbench/Services/FlowProjectService.cs | 23 +-
Workbench/Services/KeyEventService.cs | 34 +-
Workbench/Themes/BindableRichTextBox.cs | 6 +
Workbench/Themes/IOCObjectViewControl.xaml.cs | 10 +
Workbench/Themes/InputDialog.xaml.cs | 6 +
Workbench/Themes/MethodDetailsControl.xaml.cs | 67 ++-
Workbench/Themes/ObjectViewerControl.xaml.cs | 13 +-
Workbench/Themes/TypeViewerWindow.xaml.cs | 2 +
Workbench/Tool/GuidReplacer.cs | 15 +-
Workbench/ViewModels/FlowEditViewModel.cs | 2 +-
Workbench/ViewModels/MainMenuBarViewModel.cs | 2 +-
Workbench/ViewModels/MainViewModel.cs | 7 +
Workbench/Views/BaseNodesView.xaml.cs | 3 +
Workbench/Views/FlowCanvasView.xaml.cs | 38 +-
Workbench/Views/FlowEditView.xaml.cs | 4 +-
Workbench/Views/FlowLibrarysView.xaml.cs | 4 +
Workbench/Views/FlowWorkbenchView.xaml.cs | 8 +
Workbench/Views/MainMenuBarView.xaml.cs | 3 +
Workbench/Views/MainView.xaml.cs | 3 +
Workbench/Views/ViewCanvasInfoView.xaml.cs | 4 +
Workbench/Views/ViewNodeInfoView.xaml.cs | 4 +
.../Views/ViewNodeMethodInfoView.xaml.cs | 3 +
188 files changed, 2713 insertions(+), 1406 deletions(-)
create mode 100644 Library/Properties/launchSettings.json
delete mode 100644 NodeFlow/Model/Librarys/LibraryMdDd.cs
create mode 100644 NodeFlow/Model/Librarys/LibraryMthodInfo.cs
rename NodeFlow/Model/{Node => Nodes}/FlowModelExtension.cs (77%)
rename NodeFlow/Model/{Node => Nodes}/NodeModelBaseData.cs (90%)
rename NodeFlow/Model/{Node => Nodes}/NodeModelBaseFunc.cs (99%)
rename NodeFlow/Model/{Node => Nodes}/SingleActionNode.cs (72%)
rename NodeFlow/Model/{Node => Nodes}/SingleConditionNode.cs (95%)
rename NodeFlow/Model/{Node => Nodes}/SingleExpOpNode.cs (92%)
rename NodeFlow/Model/{Node => Nodes}/SingleFlipflopNode.cs (93%)
rename NodeFlow/Model/{Node => Nodes}/SingleFlowCallNode.cs (94%)
rename NodeFlow/Model/{Node => Nodes}/SingleGlobalDataNode.cs (89%)
rename NodeFlow/Model/{Node => Nodes}/SingleNetScriptNode.cs (57%)
rename NodeFlow/Model/{Node => Nodes}/SingleScriptNode.cs (98%)
rename NodeFlow/Model/{Node => Nodes}/SingleUINode.cs (66%)
rename NodeFlow/Model/{Operation => Operations}/ChangeNodeConnectionOperation.cs (96%)
rename NodeFlow/Model/{Operation => Operations}/ChangeParameterOperation.cs (98%)
rename NodeFlow/Model/{Operation => Operations}/ContainerPlaceNodeOperation.cs (98%)
rename NodeFlow/Model/{Operation => Operations}/ContainerTakeOutNodeOperation.cs (98%)
rename NodeFlow/Model/{Operation => Operations}/CreateCanvasOperation.cs (97%)
rename NodeFlow/Model/{Operation => Operations}/CreateNodeOperation.cs (99%)
rename NodeFlow/Model/{Operation => Operations}/OperationBase.cs (98%)
rename NodeFlow/Model/{Operation => Operations}/RemoveCanvasOperation.cs (97%)
rename NodeFlow/Model/{Operation => Operations}/RemoveNodeOperation.cs (96%)
rename NodeFlow/Model/{Operation => Operations}/SetConnectPriorityInvokeOperation.cs (98%)
rename NodeFlow/Model/{Operation => Operations}/SetStartNodeOperation.cs (98%)
rename Serein.Library.MyGenerator/{ParameterDetailsPropertyGenerator.cs => FlowDataPropertyGenerator.cs} (83%)
diff --git a/FlowStartTool/FlowEnv.cs b/FlowStartTool/FlowEnv.cs
index ad624e2..aa68123 100644
--- a/FlowStartTool/FlowEnv.cs
+++ b/FlowStartTool/FlowEnv.cs
@@ -14,7 +14,7 @@ namespace Serein.FlowStartTool
{
public readonly IFlowEnvironment flowEnvironment = new FlowEnvironment();
public bool IsRuning;
- public async Task StartFlow(SereinProjectData flowProjectData, string fileDataPath)
+ public void StartFlow(SereinProjectData flowProjectData, string fileDataPath)
{
IsRuning = true;
SynchronizationContext? uiContext = SynchronizationContext.Current; // 在UI线程上获取UI线程上下文信息
diff --git a/Library/Api/IEnumConvertor.cs b/Library/Api/IEnumConvertor.cs
index d900d9b..4f64e6c 100644
--- a/Library/Api/IEnumConvertor.cs
+++ b/Library/Api/IEnumConvertor.cs
@@ -7,6 +7,11 @@
///
public interface IEnumConvertor
{
+ ///
+ /// 将枚举值转换为指定类型的值
+ ///
+ ///
+ ///
TValue Convertor(TEnum e);
}
diff --git a/Library/Api/IFlowContext.cs b/Library/Api/IFlowContext.cs
index 2645b0a..3f2ffaa 100644
--- a/Library/Api/IFlowContext.cs
+++ b/Library/Api/IFlowContext.cs
@@ -252,11 +252,20 @@ namespace Serein.Library.Api
///
public string Result { get; private set; }
+ ///
+ /// 上传当前节点的执行状态和结果信息。
+ ///
+ ///
public void UploadState(RunState runState)
{
State = runState;
TS = DateTime.Now - StateTime;
}
+
+ ///
+ /// 上传当前节点的执行结果值。
+ ///
+ ///
public void UploadResultValue(object value = null)
{
if(value is null)
@@ -269,6 +278,11 @@ namespace Serein.Library.Api
Result = $"{type.FullName}::{value}";
}
}
+
+ ///
+ /// 上传当前节点的执行参数信息。
+ ///
+ ///
public void UploadParameters(object[] values = null)
{
if (values is null)
@@ -282,6 +296,10 @@ namespace Serein.Library.Api
}
}
+ ///
+ /// 返回当前节点的执行信息字符串,包含状态、耗时和结果。
+ ///
+ ///
public override string ToString()
{
return $"[{State}]{TS.TotalSeconds:0.000}ms : {Result}";
diff --git a/Library/Api/IFlowControl.cs b/Library/Api/IFlowControl.cs
index 3031921..65494fa 100644
--- a/Library/Api/IFlowControl.cs
+++ b/Library/Api/IFlowControl.cs
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
namespace Serein.Library.Api
{
+#nullable enable
///
/// 流程运行接口
///
@@ -24,7 +25,7 @@ namespace Serein.Library.Api
///
///
/// 用于每次启动时,重置IOC后默认注册某些类型
- void UseExternalIOC(ISereinIOC ioc, Action setDefultMemberOnReset = null);
+ void UseExternalIOC(ISereinIOC ioc, Action? setDefultMemberOnReset = null);
///
/// 开始运行流程
diff --git a/Library/Api/IFlowEnvironment.cs b/Library/Api/IFlowEnvironment.cs
index d8eaa04..94e0cbc 100644
--- a/Library/Api/IFlowEnvironment.cs
+++ b/Library/Api/IFlowEnvironment.cs
@@ -153,6 +153,9 @@ namespace Serein.Library.Api
///
public class ProjectLoadedEventArgs : FlowEventArgs
{
+ ///
+ /// 项目加载完成事件参数
+ ///
public ProjectLoadedEventArgs()
{
}
@@ -163,6 +166,10 @@ namespace Serein.Library.Api
///
public class ProjectSavingEventArgs : FlowEventArgs
{
+ ///
+ /// 项目保存事件参数
+ ///
+ ///
public ProjectSavingEventArgs(SereinProjectData projectData)
{
ProjectData = projectData;
@@ -179,6 +186,10 @@ namespace Serein.Library.Api
///
public class LoadDllEventArgs : FlowEventArgs
{
+ ///
+ /// 加载了DLL外部依赖事件参数
+ ///
+ ///
public LoadDllEventArgs(FlowLibraryInfo nodeLibraryInfo)
{
this.NodeLibraryInfo = nodeLibraryInfo;
@@ -194,6 +205,9 @@ namespace Serein.Library.Api
///
public class RemoteDllEventArgs : FlowEventArgs
{
+ ///
+ /// 移除了DLL外部依赖事件参数
+ ///
public RemoteDllEventArgs()
{
}
@@ -270,6 +284,9 @@ namespace Serein.Library.Api
}
+ ///
+ /// 连接关系所在的画布Guid
+ ///
public string CanvasGuid { get; }
///
@@ -309,11 +326,18 @@ namespace Serein.Library.Api
///
public class CanvasCreateEventArgs : FlowEventArgs
{
+ ///
+ /// 画布添加事件参数
+ ///
+ ///
public CanvasCreateEventArgs(FlowCanvasDetails model)
{
Model = model;
}
+ ///
+ /// 画布
+ ///
public FlowCanvasDetails Model { get; }
}
@@ -322,11 +346,18 @@ namespace Serein.Library.Api
///
public class CanvasRemoveEventArgs : FlowEventArgs
{
+ ///
+ /// 画布移除事件参数
+ ///
+ ///
public CanvasRemoveEventArgs(string canvasGuid)
{
CanvasGuid = canvasGuid;
}
+ ///
+ /// 所处画布Guid
+ ///
public string CanvasGuid { get; }
}
@@ -360,10 +391,6 @@ namespace Serein.Library.Api
/// 在UI上的位置
///
public PositionOfUI Position { get; private set; }
- ///
- /// 容器
- ///
- //public string RegeionGuid { get; private set; }
}
///
@@ -371,12 +398,20 @@ namespace Serein.Library.Api
///
public class NodeRemoveEventArgs : FlowEventArgs
{
+ ///
+ /// 被移除节点事件参数
+ ///
+ ///
+ ///
public NodeRemoveEventArgs(string canvasGuid, string nodeGuid)
{
CanvasGuid = canvasGuid;
this.NodeGuid = nodeGuid;
}
+ ///
+ /// 被移除节点所在的画布Guid
+ ///
public string CanvasGuid { get; }
///
@@ -390,6 +425,12 @@ namespace Serein.Library.Api
///
public class NodePlaceEventArgs : FlowEventArgs
{
+ ///
+ /// 节点放置事件参数
+ ///
+ ///
+ ///
+ ///
public NodePlaceEventArgs(string canvasGuid, string nodeGuid, string containerNodeGuid)
{
CanvasGuid = canvasGuid;
@@ -397,6 +438,9 @@ namespace Serein.Library.Api
ContainerNodeGuid = containerNodeGuid;
}
+ ///
+ /// 画布Guid
+ ///
public string CanvasGuid { get; }
///
@@ -414,6 +458,12 @@ namespace Serein.Library.Api
///
public class NodeTakeOutEventArgs : FlowEventArgs
{
+ ///
+ /// 节点取出事件参数
+ ///
+ ///
+ ///
+ ///
public NodeTakeOutEventArgs(string canvasGuid, string containerNodeGuid, string nodeGuid)
{
CanvasGuid = canvasGuid;
@@ -421,6 +471,9 @@ namespace Serein.Library.Api
ContainerNodeGuid = containerNodeGuid;
}
+ ///
+ /// 所在画布Guid
+ ///
public string CanvasGuid { get; }
///
@@ -438,9 +491,17 @@ namespace Serein.Library.Api
-
+ ///
+ /// 起始节点发生了变化
+ ///
public class StartNodeChangeEventArgs : FlowEventArgs
{
+ ///
+ /// 起始节点发生了变化事件参数
+ ///
+ ///
+ ///
+ ///
public StartNodeChangeEventArgs(string canvasGuid, string oldNodeGuid, string newNodeGuid)
{
CanvasGuid = canvasGuid;
@@ -448,6 +509,9 @@ namespace Serein.Library.Api
this.NewNodeGuid = newNodeGuid; ;
}
+ ///
+ /// 所在画布Guid
+ ///
public string CanvasGuid { get; }
///
@@ -515,6 +579,11 @@ namespace Serein.Library.Api
///
public class NodeInterruptStateChangeEventArgs : FlowEventArgs
{
+ ///
+ /// 节点中断状态改变事件参数
+ ///
+ ///
+ ///
public NodeInterruptStateChangeEventArgs(string nodeGuid,bool isInterrupt)
{
NodeGuid = nodeGuid;
@@ -526,14 +595,19 @@ namespace Serein.Library.Api
/// 中断的节点Guid
///
public string NodeGuid { get;}
+ ///
+ /// 是否中断
+ ///
public bool IsInterrupt { get;}
- // public InterruptClass Class { get;}
}
///
/// 节点触发了中断事件参数
///
public class InterruptTriggerEventArgs : FlowEventArgs
{
+ ///
+ /// 中断触发类型
+ ///
public enum InterruptTriggerType
{
///
@@ -550,6 +624,12 @@ namespace Serein.Library.Api
Obj,
}
+ ///
+ /// 中断触发事件参数
+ ///
+ ///
+ ///
+ ///
public InterruptTriggerEventArgs(string nodeGuid, string expression, InterruptTriggerType type)
{
this.NodeGuid = nodeGuid;
@@ -561,7 +641,13 @@ namespace Serein.Library.Api
/// 中断的节点Guid
///
public string NodeGuid { get;}
+ ///
+ /// 被触发的表达式
+ ///
public string Expression { get;}
+ ///
+ /// 中断触发类型
+ ///
public InterruptTriggerType Type { get;}
}
@@ -572,6 +658,9 @@ namespace Serein.Library.Api
///
public class IOCMembersChangedEventArgs : FlowEventArgs
{
+ ///
+ /// IOC成员发生改变的事件类型
+ ///
public enum EventType
{
///
@@ -583,12 +672,23 @@ namespace Serein.Library.Api
///
Completeuild,
}
+ ///
+ /// IOC成员发生改变事件参数
+ ///
+ ///
+ ///
public IOCMembersChangedEventArgs(string key, object instance)
{
this.Key = key;
this.Instance = instance;
}
+ ///
+ /// IOC成员发生改变事件参数
+ ///
public string Key { get; private set; }
+ ///
+ /// IOC成员发生改变事件参数
+ ///
public object Instance { get; private set; }
}
@@ -597,38 +697,20 @@ namespace Serein.Library.Api
///
public class NodeLocatedEventArgs : FlowEventArgs
{
+ ///
+ /// 节点需要定位事件参数
+ ///
+ ///
public NodeLocatedEventArgs(string nodeGuid)
{
NodeGuid = nodeGuid;
}
+ ///
+ /// 节点需要定位事件参数
+ ///
public string NodeGuid { get; private set; }
}
-/* ///
- /// 节点移动了
- ///
- public class NodeMovedEventArgs : FlowEventArgs
- {
- public NodeMovedEventArgs(string nodeGuid, double x, double y)
- {
- this.NodeGuid = nodeGuid;
- this.X = x;
- this.Y = y;
- }
- ///
- /// 节点唯一标识
- ///
- public string NodeGuid { get; private set; }
- ///
- /// 画布上的x坐标
- ///
- public double X { get; private set; }
- ///
- /// 画布上的y坐标
- ///
- public double Y { get; private set; }
- }*/
-
#endregion
@@ -729,23 +811,113 @@ namespace Serein.Library.Api
///
event EnvOutHandler EnvOutput;
+ ///
+ /// 加载了DLL外部依赖事件
+ ///
+ ///
public void OnDllLoad(LoadDllEventArgs eventArgs);
+
+ ///
+ /// 项目加载完成事件
+ ///
+ ///
public void OnProjectLoaded(ProjectLoadedEventArgs eventArgs);
+
+ ///
+ /// 项目准备保存事件
+ ///
+ ///
public void OnProjectSaving(ProjectSavingEventArgs eventArgs);
+
+ ///
+ /// 节点连接关系发生改变事件
+ ///
+ ///
public void OnNodeConnectChanged(NodeConnectChangeEventArgs eventArgs);
+
+ ///
+ /// 画布创建事件
+ ///
+ ///
public void OnCanvasCreated(CanvasCreateEventArgs eventArgs);
+
+ ///
+ /// 画布移除事件
+ ///
+ ///
public void OnCanvasRemoved(CanvasRemoveEventArgs eventArgs);
+
+ ///
+ /// 节点创建事件
+ ///
+ ///
public void OnNodeCreated(NodeCreateEventArgs eventArgs);
+
+ ///
+ /// 节点移除事件
+ ///
+ ///
public void OnNodeRemoved(NodeRemoveEventArgs eventArgs);
+
+ ///
+ /// 节点放置事件
+ ///
+ ///
public void OnNodePlace(NodePlaceEventArgs eventArgs);
+
+ ///
+ /// 节点取出事件
+ ///
+ ///
public void OnNodeTakeOut(NodeTakeOutEventArgs eventArgs);
+
+ ///
+ /// 起始节点发生了变化事件
+ ///
+ ///
public void OnStartNodeChanged(StartNodeChangeEventArgs eventArgs);
+
+ ///
+ /// 流程运行完成事件
+ ///
+ ///
public void OnFlowRunComplete(FlowEventArgs eventArgs);
+
+ ///
+ /// 被监视的对象发生了改变事件
+ ///
+ ///
public void OnMonitorObjectChanged(MonitorObjectEventArgs eventArgs);
+
+ ///
+ /// 节点中断状态发生了改变事件(开启了中断/取消了中断)
+ ///
+ ///
public void OnNodeInterruptStateChanged(NodeInterruptStateChangeEventArgs eventArgs);
+
+ ///
+ /// 触发了中断事件
+ ///
+ ///
public void OnInterruptTriggered(InterruptTriggerEventArgs eventArgs);
+
+ ///
+ /// IOC容器成员发生了改变事件
+ ///
+ ///
public void OnIOCMembersChanged(IOCMembersChangedEventArgs eventArgs);
+
+ ///
+ /// 节点需要定位事件
+ ///
+ ///
public void OnNodeLocated(NodeLocatedEventArgs eventArgs);
+
+ ///
+ /// 环境输出信息事件
+ ///
+ ///
+ ///
public void OnEnvOutput(InfoType type, string value);
}
@@ -864,7 +1036,7 @@ namespace Serein.Library.Api
/// 获取当前项目信息
///
///
- Task GetProjectInfoAsync();
+ SereinProjectData GetProjectInfoAsync();
#endregion
diff --git a/Library/Api/IFlowNode.cs b/Library/Api/IFlowNode.cs
index 9987c12..7e3530b 100644
--- a/Library/Api/IFlowNode.cs
+++ b/Library/Api/IFlowNode.cs
@@ -1,12 +1,7 @@
-using System;
-using System.Collections.Generic;
+using System.Collections.Generic;
using System.ComponentModel;
-using System.Linq;
-using System.Text;
using System.Threading;
using System.Threading.Tasks;
-using System.Threading.Tasks;
-using Serein.Library;
namespace Serein.Library.Api
{
@@ -72,11 +67,11 @@ namespace Serein.Library.Api
MethodDetails MethodDetails { get; set; }
///
- /// 父节点集合
+ /// 前继节点集合
///
Dictionary> PreviousNodes { get;}
///
- /// 子节点集合
+ /// 后继节点集合
///
Dictionary> SuccessorNodes { get; set; }
diff --git a/Library/Api/IJsonProvider.cs b/Library/Api/IJsonProvider.cs
index 421d413..203455e 100644
--- a/Library/Api/IJsonProvider.cs
+++ b/Library/Api/IJsonProvider.cs
@@ -118,14 +118,14 @@ namespace Serein.Library.Api
///
///
///
- IJsonToken CreateObject(IDictionary values = null);
+ IJsonToken CreateObject(IDictionary? values = null);
///
/// 创建数组
///
///
///
- IJsonToken CreateArray(IEnumerable