diff --git a/FlowStartTool/FlowEnv.cs b/FlowStartTool/FlowEnv.cs
index 7faf082..c8667e2 100644
--- a/FlowStartTool/FlowEnv.cs
+++ b/FlowStartTool/FlowEnv.cs
@@ -31,11 +31,11 @@ namespace Serein.FlowStartTool
//}
//else
//{
- // env = new FlowEnvironmentDecorator(uIContextOperation);
+ // env = new FlowEnvironment(uIContextOperation);
// this.window = window;
//}
- Env = new FlowEnvironmentDecorator();
+ Env = new FlowEnvironment();
Env.SetUIContextOperation(uIContextOperation);
Env.LoadProject(new FlowEnvInfo { Project = flowProjectData }, fileDataPath); // 加载项目
diff --git a/Library/Api/IFlowEnvironment.cs b/Library/Api/IFlowEnvironment.cs
index d095342..e608640 100644
--- a/Library/Api/IFlowEnvironment.cs
+++ b/Library/Api/IFlowEnvironment.cs
@@ -739,6 +739,7 @@ namespace Serein.Library.Api
}
+
///
/// 运行环境
///
@@ -758,7 +759,6 @@ namespace Serein.Library.Api
///
string EnvName { get; }
-
///
/// 项目文件位置
///
@@ -785,11 +785,6 @@ namespace Serein.Library.Api
///
RunState FlowState { get; set; }
- ///
- /// 全局触发器运行状态
- ///
- //RunState FlipFlopState { get; set; }
-
///
/// 表示当前环境
///
@@ -811,8 +806,9 @@ namespace Serein.Library.Api
///
/// 输出信息
///
- ///
- ///
+ /// 消息
+ /// 输出类型
+ /// 输出级别
void WriteLine(InfoType type, string message, InfoClass @class = InfoClass.Trivial);
///
@@ -840,7 +836,6 @@ namespace Serein.Library.Api
///
Task LoadNodeInfosAsync(List nodeInfos);
-
#endregion
#region 远程相关
@@ -906,6 +901,7 @@ namespace Serein.Library.Api
///
/// 移动了某个节点(远程插件使用)
///
+ /// 所在画布
///
///
///
@@ -914,6 +910,7 @@ namespace Serein.Library.Api
///
/// 设置流程起点节点
///
+ /// 所在画布
/// 尝试设置为起始节点的节点Guid
/// 被设置为起始节点的Guid
Task SetStartNodeAsync(string canvasGuid, string nodeGuid);
@@ -921,6 +918,7 @@ namespace Serein.Library.Api
///
/// 在两个节点之间创建连接关系
///
+ /// 所在画布
/// 起始节点Guid
/// 目标节点Guid
/// 起始节点控制点
@@ -936,6 +934,7 @@ namespace Serein.Library.Api
///
/// 在两个节点之间创建连接关系
///
+ /// 所在画布
/// 起始节点Guid
/// 目标节点Guid
/// 起始节点控制点
@@ -950,26 +949,32 @@ namespace Serein.Library.Api
ConnectionArgSourceType argSourceType,
int argIndex);
-
+
///
/// 创建节点
///
+ /// 所在画布
/// 控件类型
/// 节点在画布上的位置(
/// 节点绑定的方法说明
Task CreateNodeAsync(string canvasGuid, NodeControlType nodeType, PositionOfUI position, MethodDetailsInfo methodDetailsInfo = null);
+
///
- /// 将节点放置在容器中
+ /// 将节点放置在容器中
///
+ /// 所在画布
+ /// 需要放置的节点Guid
+ /// 存放节点的容器Guid
///
Task PlaceNodeToContainerAsync(string canvasGuid, string nodeGuid, string containerNodeGuid);
///
- /// 将节点从容器中脱离
+ /// 将节点放置在容器中
///
- ///
+ /// 所在画布
+ /// 需要取出的节点Guid
Task TakeOutNodeToContainerAsync(string canvasGuid, string nodeGuid);
@@ -984,7 +989,8 @@ namespace Serein.Library.Api
///
/// 移除两个节点之间的方法调用关系
- ///
+ ///
+ /// 所在画布
/// 起始节点
/// 目标节点
/// 连接类型
@@ -993,15 +999,16 @@ namespace Serein.Library.Api
///
/// 移除连接节点之间参数传递的关系
///
+ /// 所在画布
/// 起始节点Guid
/// 目标节点Guid
/// 连接到第几个参数
- /// 参数来源类型
Task RemoveConnectArgSourceAsync(string canvasGuid, string fromNodeGuid, string toNodeGuid, int argIndex);
///
/// 移除节点/区域/基础控件
///
+ /// 所在画布
/// 待移除的节点Guid
Task RemoveNodeAsync(string canvasGuid, string nodeGuid);
@@ -1089,11 +1096,21 @@ namespace Serein.Library.Api
bool TryGetDelegateDetails(string assemblyName, string methodName, out DelegateDetails del);
///
- /// 提供设置UI上下文的能力
+ /// 提供设置UI上下文的能力
+ /// 提供设置UI上下文的能力,在WinForm/WPF项目中,在UI线程外对UI元素的修改将会导致异常
+ /// 需要你提供
///
///
void SetUIContextOperation(UIContextOperation uiContextOperation);
+ ///
+ /// 需要你提供一个由你实现的ISereinIOC接口实现类
+ /// 当你将流程运行环境集成在你的项目时,并希望流程运行时使用你提供的对象,而非自动创建
+ /// 就需要你调用这个方法,用来替换运行环境的IOC容器
+ ///
+ ///
+ void UseExternalIOC(ISereinIOC ioc);
+
///
/// 开始运行流程
///
@@ -1101,7 +1118,6 @@ namespace Serein.Library.Api
///
Task StartFlowAsync(string[] canvasGuids);
-
///
/// 从选定的节点开始运行
///
@@ -1142,14 +1158,6 @@ namespace Serein.Library.Api
/// 中断类型。0主动监视,1表达式
void TriggerInterrupt(string nodeGuid, string expression, InterruptTriggerEventArgs.InterruptTriggerType type);
- ///
- /// 立刻调用某个节点,并获取其返回值
- ///
- /// 调用时的上下文
- /// 节点Guid
- ///
- // Task