Skip to content

API Host CompiledBlock

Liu.Yandong.Hanks edited this page Aug 19, 2026 · 2 revisions

CompiledBlock

可直接调用的已编译语句块

Directly invokable compiled statement block

.NET Host API 目录

.NET Host API Directory

概述

Overview

CompiledBlockAuroraEngine.CompileBlock 的结果。它不进入模块系统、不支持 import/include,也不参与热更新;适合公式、过滤器和小型规则。

CompiledBlock is produced by AuroraEngine.CompileBlock. It does not enter the module system, does not support import/include, and does not participate in hot patching; it suits formulas, filters, and small rules.

Invoke(...arguments)

Parameters:

  • 可传 ScriptDatum[]ScriptObject[];部分重载还接收 ScriptDomainScriptContext

    Accepts ScriptDatum[] or ScriptObject[]; some overloads also accept ScriptDomain or ScriptContext.

Returns

ScriptDatum

ScriptDatum.

using var block = engine.CompileBlock("return value * 2;", ["value"]);
var result = block.Invoke(ScriptDatum.FromNumber(21));

Invoke(domain, ...arguments)

Parameters:

  • domain
    要使用的 Domain。

    Domain to use.

  • arguments
    位置实参。

    Positional arguments.

Returns

ScriptDatum

ScriptDatum.

using var domain = engine.CreateDomain();
using var block = engine.CompileBlock("return value + 1;", ["value"]);
var result = block.Invoke(domain, ScriptDatum.FromNumber(41));

Invoke(context, arguments)

Parameters:

  • context
    显式脚本上下文。

    Explicit script context.

  • arguments
    ReadOnlySpan<ScriptDatum> 参数。

    ReadOnlySpan<ScriptDatum> arguments.

Returns

ScriptDatum

ScriptDatum.

using var domain = engine.CreateDomain();
using var block = engine.CompileBlock("return value;", ["value"]);
var values = new[] { ScriptDatum.FromNumber(42) };
var result = block.Invoke(new ScriptContext(domain), values);

Dispose()

Parameters:

  • 无。

    None.

Returns

无。

None.

用途

确定性释放编译期间注册的动态 delegate。

Deterministically releases dynamically registered delegates.

using (var block = engine.CompileBlock("return 42;", Array.Empty<string>()))
{
    var result = block.Invoke();
}

Clone this wiki locally