2025-07-11 20:52:21 +08:00
|
|
|
|
using Serein.Library.Api;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Serein.Script
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 脚本运行上下文
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public interface IScriptInvokeContext
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 脚本运行的流程上下文,包含了流程上下文和变量等信息
|
|
|
|
|
|
/// </summary>
|
2025-07-23 16:20:41 +08:00
|
|
|
|
IFlowContext FlowContext { get; }
|
2025-07-11 20:52:21 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2025-07-18 22:45:06 +08:00
|
|
|
|
/// 是否该退出了(由 TokenSource 控制,用于响应外部发出停止信号)
|
2025-07-11 20:52:21 +08:00
|
|
|
|
/// </summary>
|
|
|
|
|
|
bool IsReturn { get; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否需要提前返回(用于脚本中提前结束)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
bool IsNeedReturn { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 是否严格检查 Null 值 (禁止使用 Null)
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
bool IsCheckNullValue { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取变量的值
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="varName"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2025-07-30 21:15:07 +08:00
|
|
|
|
object? GetVarValue(string varName);
|
2025-07-11 20:52:21 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设置变量的值
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="varName"></param>
|
|
|
|
|
|
/// <param name="value"></param>
|
|
|
|
|
|
/// <returns></returns>
|
2025-07-18 22:45:06 +08:00
|
|
|
|
bool SetVarValue(string varName, object? value);
|
2025-07-11 20:52:21 +08:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 结束调用
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
void OnExit();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|