refactor (env) : 修复了运行环境构建顺序,以及同步上下文在内置ioc中传递的问题

This commit is contained in:
fengjiayi
2026-01-27 17:24:19 +08:00
parent f335439732
commit dddc3b3b53
14 changed files with 215 additions and 123 deletions

View File

@@ -18,14 +18,14 @@ namespace Serein.NodeFlow.Services
public class FlowCoreGenerateService
{
private readonly FlowModelService flowModelService;
private readonly FlowLibraryService flowLibraryService;
private readonly IFlowLibraryService flowLibraryService;
/// <summary>
/// 流程代码生成服务
/// </summary>
/// <param name="flowModelService"></param>
/// <param name="flowLibraryService"></param>
public FlowCoreGenerateService(FlowModelService flowModelService ,FlowLibraryService flowLibraryService )
public FlowCoreGenerateService(FlowModelService flowModelService ,IFlowLibraryService flowLibraryService )
{
this.flowModelService = flowModelService;
this.flowLibraryService = flowLibraryService;

View File

@@ -9,10 +9,11 @@ using System.Xml.Linq;
namespace Serein.NodeFlow.Services
{
/// <summary>
/// 管理加载在运行环境中的外部程序集
/// </summary>
public class FlowLibraryService
public class FlowLibraryService : IFlowLibraryService
{
/// <summary>
/// 是否加载过基础依赖
@@ -49,7 +50,7 @@ namespace Serein.NodeFlow.Services
private bool CheckBaseLibrary(string libraryfilePath, out string baseLibraryPath)
{
var dir = Path.GetDirectoryName(libraryfilePath); // 获取目录路径
ArgumentNullException.ThrowIfNullOrWhiteSpace(dir);
ArgumentException.ThrowIfNullOrWhiteSpace(dir);
var sereinFlowBaseLibraryPath = Path.Combine(dir, SereinBaseLibrary);
if (!Path.Exists(sereinFlowBaseLibraryPath))
{

View File

@@ -7,19 +7,19 @@ using System.Diagnostics.CodeAnalysis;
namespace Serein.NodeFlow.Services
{
/// <summary>
/// 流程模型服务
/// 流程画布/节点数据实体服务
/// </summary>
public class FlowModelService
{
private readonly IFlowEnvironment environment;
private readonly FlowLibraryService flowLibraryService;
private readonly IFlowLibraryService flowLibraryService;
/// <summary>
/// 流程模型服务构造函数
/// </summary>
/// <param name="environment"></param>
/// <param name="flowLibraryService"></param>
public FlowModelService(IFlowEnvironment environment, FlowLibraryService flowLibraryService)
public FlowModelService(IFlowEnvironment environment, IFlowLibraryService flowLibraryService)
{
this.environment = environment;
this.flowLibraryService = flowLibraryService;

View File

@@ -8,6 +8,9 @@ using System.Threading.Tasks;
namespace Serein.NodeFlow.Services
{
/// <summary>
/// 流程操作
/// </summary>
internal class FlowOperationService
{
private readonly ISereinIOC sereinIOC;