diff --git a/FlowStartTool/FlowEnv.cs b/FlowStartTool/FlowEnv.cs
index c8667e2..822006a 100644
--- a/FlowStartTool/FlowEnv.cs
+++ b/FlowStartTool/FlowEnv.cs
@@ -12,48 +12,22 @@ namespace Serein.FlowStartTool
{
internal class FlowEnv
{
- public IFlowEnvironment? Env;
+ public readonly IFlowEnvironment flowEnvironment = new FlowEnvironment();
public bool IsRuning;
public async Task StartFlow(SereinProjectData flowProjectData, string fileDataPath)
{
IsRuning = true;
SynchronizationContext? uiContext = SynchronizationContext.Current; // 在UI线程上获取UI线程上下文信息
var uIContextOperation = new UIContextOperation(uiContext); // 封装一个调用UI线程的工具类
+ flowEnvironment.SetUIContextOperation(uIContextOperation);
+ flowEnvironment.LoadProject(new FlowEnvInfo { Project = flowProjectData }, fileDataPath); // 加载项目
- //if (OperatingSystem.IsLinux())
- //{
-
- //}
-
- // if (uIContextOperation is null)
- //{
- // throw new Exception("无法封装 UIContextOperation ");
- //}
- //else
- //{
- // env = new FlowEnvironment(uIContextOperation);
- // this.window = window;
- //}
-
- Env = new FlowEnvironment();
- Env.SetUIContextOperation(uIContextOperation);
- Env.LoadProject(new FlowEnvInfo { Project = flowProjectData }, fileDataPath); // 加载项目
-
- if(Env is IFlowEnvironmentEvent @event)
+ flowEnvironment.Event.OnEnvOut += (infoType, value) =>
{
- // 获取环境输出
- @event.OnEnvOut += (infoType, value) =>
- {
- Console.WriteLine($"{DateTime.Now} [{infoType}] : {value}{Environment.NewLine}");
- };
- }
-
-
-
- await Env.StartRemoteServerAsync(7525); // 启动 web socket 监听远程请求
-
- //await Env.StartAsync();
+ Console.WriteLine($"{DateTime.Now} [{infoType}] : {value}{Environment.NewLine}");
+ };
+ await flowEnvironment.StartRemoteServerAsync(7525); // 启动 web socket 监听远程请求
IsRuning = false;
}
diff --git a/Library/Api/IFlowEnvironment.cs b/Library/Api/IFlowEnvironment.cs
index e608640..bff243e 100644
--- a/Library/Api/IFlowEnvironment.cs
+++ b/Library/Api/IFlowEnvironment.cs
@@ -754,6 +754,12 @@ namespace Serein.Library.Api
///
ISereinIOC IOC { get; }
+
+ ///
+ /// 流程事件接口
+ ///
+ IFlowEnvironmentEvent Event { get; }
+
///
/// 环境名称
///
diff --git a/NodeFlow/Env/FlowEnvironment.cs b/NodeFlow/Env/FlowEnvironment.cs
index d4958e0..6f6bc2b 100644
--- a/NodeFlow/Env/FlowEnvironment.cs
+++ b/NodeFlow/Env/FlowEnvironment.cs
@@ -80,7 +80,11 @@ namespace Serein.NodeFlow.Env
///
public NodeMVVMManagement NodeMVVMManagement => currentFlowEnvironment.NodeMVVMManagement;
///
- public ISereinIOC IOC => (ISereinIOC)currentFlowEnvironment;
+ public ISereinIOC IOC => currentFlowEnvironment.IOC;
+
+ ///
+ public IFlowEnvironmentEvent Event => currentFlowEnvironment.Event;
+
///
public string EnvName => currentFlowEnvironment.EnvName;
diff --git a/NodeFlow/Env/LocalFlowEnvironment.cs b/NodeFlow/Env/LocalFlowEnvironment.cs
index 210c7d7..55e8eed 100644
--- a/NodeFlow/Env/LocalFlowEnvironment.cs
+++ b/NodeFlow/Env/LocalFlowEnvironment.cs
@@ -224,6 +224,11 @@ namespace Serein.NodeFlow.Env
///
public IFlowEnvironment CurrentEnv { get => this; }
+ ///
+ /// 流程事件
+ ///
+ public IFlowEnvironmentEvent Event { get => this; }
+
///
/// UI线程操作类
///
diff --git a/NodeFlow/Env/RemoteFlowEnvironment.cs b/NodeFlow/Env/RemoteFlowEnvironment.cs
index c2e9371..5ec9e23 100644
--- a/NodeFlow/Env/RemoteFlowEnvironment.cs
+++ b/NodeFlow/Env/RemoteFlowEnvironment.cs
@@ -65,6 +65,10 @@ namespace Serein.NodeFlow.Env
public ISereinIOC IOC => throw new NotImplementedException();
+ ///
+ /// 流程事件
+ ///
+ public IFlowEnvironmentEvent Event { get => this; }
public string EnvName => LocalFlowEnvironment.SpaceName;
///