mirror of
https://gitee.com/langsisi_admin/serein-flow
synced 2026-03-03 00:00:49 +08:00
重写了Script的解释器代码,使其更加直观。重写了流程控制的部分代码,分离运行环境IOC与流程IOC。
This commit is contained in:
@@ -141,11 +141,11 @@ namespace Serein.NodeFlow.Model
|
||||
}
|
||||
else
|
||||
{
|
||||
var instance = Env.IOC.Get(md.ActingInstanceType);
|
||||
var instance = Env.FlowControl.IOC.Get(md.ActingInstanceType);
|
||||
if (instance is null)
|
||||
{
|
||||
Env.IOC.Register(md.ActingInstanceType).Build();
|
||||
instance = Env.IOC.Get(md.ActingInstanceType);
|
||||
Env.FlowControl.IOC.Register(md.ActingInstanceType).Build();
|
||||
instance = Env.FlowControl.IOC.Get(md.ActingInstanceType);
|
||||
}
|
||||
object[] args = await this.GetParametersAsync(context, token);
|
||||
var result = await dd.InvokeAsync(instance, args);
|
||||
|
||||
@@ -39,11 +39,11 @@ namespace Serein.NodeFlow.Model
|
||||
throw new Exception("不存在对应委托");
|
||||
}
|
||||
|
||||
var instance = context.Env.IOC.Get(md.ActingInstanceType);
|
||||
var instance = Env.FlowControl.IOC.Get(md.ActingInstanceType);
|
||||
if (instance is null)
|
||||
{
|
||||
Env.IOC.Register(md.ActingInstanceType).Build();
|
||||
instance = Env.IOC.Get(md.ActingInstanceType);
|
||||
Env.FlowControl.IOC.Register(md.ActingInstanceType).Build();
|
||||
instance = Env.FlowControl.IOC.Get(md.ActingInstanceType);
|
||||
}
|
||||
await dd.InvokeAsync(instance, [context]);
|
||||
var args = await this.GetParametersAsync(context, token);
|
||||
|
||||
@@ -246,6 +246,10 @@ namespace Serein.NodeFlow.Model
|
||||
}
|
||||
else
|
||||
{
|
||||
/*var tempName = node.MethodDetails.MethodName;
|
||||
var index = node.MethodDetails.MethodName.IndexOf('(');
|
||||
var methodName = tempName[..(index - 1)];
|
||||
return GetApiInvokeName(node, methodName);*/
|
||||
FlowLibraryService service = node.Env.IOC.Get<FlowLibraryService>();
|
||||
if (service.TryGetMethodInfo(md.AssemblyName, md.MethodName, out var methodInfo))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user