Skip to content

API Host BondingGetter

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

BondingGetter

ClrGetterDelegate 的脚本对象包装器。

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

返回 .NET 宿主 API 参考

概述

BondingGetter 将宿主计算的值暴露为脚本属性。每次读取都会调用包装的 ClrGetterDelegate,该委托写入 ref 结果槽,因此值可以按需生成,而非预先存储。

快速参考

BondingGetter 的最小用法。

ClrGetterDelegate answer = (
    ScriptObject target,
    ref ScriptDatum result) =>
{
    result = ScriptDatum.FromNumber(42);
};

var getter = new BondingGetter(answer);

构造函数

BondingGetter

BondingGetter(ClrGetterDelegate callback)

将宿主 getter 委托包装为脚本可读的值。

参数

名称 类型 必需 说明
callback ClrGetterDelegate 每次读取时由运行时调用的回调。

返回值

新的 BondingGetter 实例。

var getter = new BondingGetter(answer);

字段

Name

string Name

向脚本报告的 getter 名称。

参数

无。

返回值

返回 string

Console.WriteLine(getter.Name);

方法

Invoke

void Invoke(ScriptObject @object, ref ScriptDatum result)

为所提供对象调用包装的 getter。

参数

名称 类型 必需 说明
object ScriptObject 读取属性的对象。
result ref ScriptDatum 接收读取值的槽。

返回值

无。

行为

运行时通常在属性访问时调用 Invoke;宿主仅在脚本执行之外读取值时才直接调用它。

var result = ScriptDatum.Null;
getter.Invoke(hostObject, ref result);

Clone this wiki locally