Skip to content

API Host IAuroraNativeInstance

Liu.Yandong.Hanks edited this page Sep 7, 2026 · 4 revisions

IAuroraNativeInstance

生成代码加在原生 Type 实例上的标记,使未标注 [Export] 的 CLR 成员不会经反射回退暴露。

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

返回 .NET 宿主 API 参考 · 脚本原生类型

概述

宿主声明 [NativeType] 且带实例表面时,应派生 ScriptObject。源生成器实现本接口并补全属性协议重写,不必手写。

[NativeType("Vec2")]
public sealed partial class Vec2 : ScriptObject
{
    [Export("x")] public double X;

    [Export]
    public Vec2(double x) => X = x;
}

宿主也可以直接 new Vec2(3) 并以 ScriptDatum.FromObject(vec) 传入脚本。

备注

  • 这是生成器使用的标记接口;NativeType 原型归属不由本接口决定。
  • 普通实例方法位于生成的冻结 NativePrototype 上;存在这类方法时,用户构造函数必须显式调用 base(NativePrototype)。仅含字段或 getter/setter 的类型不生成该原型。
  • 不要把原生字段放进 HiddenClass 槽位;脚本额外添加的属性仍走普通对象路径。
  • 编译期已证明的局部以 CLR 类型存储;字段 ++/+= 与方法调用走直调。无法证明或被闭包捕获时回退动态协议。
  • typeof(Vec2) 为 "type";实例的 typeof 为 [NativeType] 上声明的类型名。

参见

AuroraScript.JIT 4.0.0

入门

语言

脚本 API

宿主集成

工具

项目

Clone this wiki locally