1. 移除了FlipflopContext,统一流程API

2. Script项目脚本修复了 RawString 原始字符串存在的问题
3. Script使用了ValueNode统一了值类型节点,为后续扩展更多的值类型做准备
4. TypeHelper.ToTypeOfString()方法中添加了部分值类型的"Type[]”与“List<Type>”的显式定义,用于脚本在类型中定义数组成员
5. Script项目脚本默认挂载的json方法拆分为jsonObj(String)与jsonStr(Object)以支持序列化与反序列化
6. 项目保存为dnf项目文件时,将不再保存名称为”Default"并且没有节点的画布,避免重复保存时默认画布增多。
This commit is contained in:
fengjiayi
2025-08-02 22:04:13 +08:00
parent 93747ce7fd
commit 79af278b70
26 changed files with 398 additions and 149 deletions

View File

@@ -103,20 +103,34 @@ public static class NodeMethodDetailsHelper
if (methodInfo.ReturnType.IsGenericType && methodInfo.ReturnType.GetGenericTypeDefinition() == typeof(Task<>))
{
// 获取 Task<> 的泛型参数类型
var innerType = methodInfo.ReturnType.GetGenericArguments()[0];
if (innerType.IsGenericType && innerType.GetGenericTypeDefinition() == typeof(IFlipflopContext<>))
var innerTypes = methodInfo.ReturnType.GetGenericArguments();
if(innerTypes.Length == 1)
{
var flipflopType = innerType.GetGenericArguments()[0];
returnType = flipflopType;
var innerType = innerTypes[0];
returnType = innerType;
}
else
{
SereinEnv.WriteLine(InfoType.WARN, $"[{methodName}]跳过创建返回类型非预期的Task<IFlipflopContext<TResult>>。");
SereinEnv.WriteLine(InfoType.WARN, $"[{methodName}]跳过创建返回类型非预期的Task<TResult>。");
outMethodInfo = null;
methodDetails = null;
delegateDetails = null;
return false;
}
//var innerType = methodInfo.ReturnType.GetGenericArguments()[0];
//if (innerType.IsGenericType && innerType.GetGenericTypeDefinition() == typeof(IFlipflopContext<>))
//{
// var flipflopType = innerType.GetGenericArguments()[0];
// returnType = flipflopType;
//}
//else
//{
// SereinEnv.WriteLine(InfoType.WARN, $"[{methodName}]跳过创建返回类型非预期的Task<IFlipflopContext<TResult>>。");
// outMethodInfo = null;
// methodDetails = null;
// delegateDetails = null;
// return false;
//}
}
else
{