Skip to content

API Host BondingFunction

Liu.Yandong.Hanks edited this page Aug 26, 2026 · 4 revisions

BondingFunction

ClrDatumDelegate 的脚本可调用包装器。

命名空间:AuroraScript.Runtime.Types。类型:class。

返回 .NET 宿主 API 参考

概述

BondingFunction 将原始 ClrDatumDelegate 转换为脚本可以像调用任何其他函数一样调用的值。这是高级路径:委托接收脚本上下文、所属模块、参数 span 以及 ref 结果槽。

Tip

对于简单的宿主函数,将普通 CLR 委托传递给 ScriptGlobal.Define 通常更容易。

快速参考

BondingFunction 的最小用法。

ClrDatumDelegate answer = (
    ScriptContext ctx,
    ScriptObject module,
    Span<ScriptDatum> args,
    ref ScriptDatum result) =>
{
    result = ScriptDatum.FromNumber(42);
};

var function = new BondingFunction(answer);

构造函数

BondingFunction

BondingFunction(ClrDatumDelegate callback)

将宿主委托包装为脚本可调用的函数。

参数

名称 类型 必需 说明
callback ClrDatumDelegate 由运行时调用的回调。

返回值

新的 BondingFunction 实例。

var function = new BondingFunction(answer);

属性

Name

string Name

向脚本报告的函数名称。

参数

无。

返回值

返回 string

Console.WriteLine(function.Name);

字段

Target

ScriptObject Target

函数绑定的对象,未绑定时为 null

参数

无。

返回值

返回 ScriptObject

var target = function.Target;

DatumMethod

ClrDatumDelegate DatumMethod

函数调用的底层宿主委托。

参数

无。

返回值

返回 ClrDatumDelegate

var callback = function.DatumMethod;

方法

Bind

BondingFunction Bind(ScriptObject target)

返回绑定到所提供目标对象的函数。

参数

名称 类型 必需 说明
target ScriptObject 要绑定为调用目标的对象。

返回值

返回 BondingFunction

var bound = function.Bind(hostService);

Clone this wiki locally