Repository navigation
API Host IAuroraNativeInstance
Liu.Yandong.Hanks edited this page Sep 7, 2026
·
4 revisions
生成代码加在原生 Type 实例上的标记,使未标注 [Export] 的 CLR 成员不会经反射回退暴露。
命名空间:AuroraScript.Runtime.Types。类型:interface。
宿主声明 [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 · 文档首页 · 仓库 · MIT License
- 宿主集成
- 脚本原生类型
- .NET 宿主 API 参考
- 引擎与执行
- 编译配置
- 源解析
- 脚本原生类型
- NativeTypeAttribute
- NativePackageAttribute
- ExportAttribute
- ReceiverExportAttribute
- AuroraExportValueKind
- AuroraParamAttribute
- AuroraGeneratedExportAttribute
- AuroraGeneratedConstantAttribute
- MatchFailure
- MatchLevel
- IAuroraNativeInstance
- INativeTypedDocument
- AuroraNativeObject
- AuroraNativeObjectAttribute
- 运行时值
- ScriptDatum
- ValueKind
- ScriptObject
- ScriptArray
- ScriptType
- TypeAccess
- ObjectFlags
- NumberValue
- Int64Value
- UInt64Value
- StringValue
- BooleanValue
- NullValue
- ScriptDate
- ScriptError
- ScriptHashMap
- ScriptRegex
- ScriptProxy
- StringBuffer
- ScriptEnumerator
- ScriptFunctionDelegate
- ScriptMethodDelegate
- ClosureFunction
- CLR 互操作
- 宿主 TDoc
- 扩展包
- 序列化与调试
- 异常与诊断