Asteroid.RuntimeObjects.CompilerTools
0.2.12
See the version list below for details.
dotnet add package Asteroid.RuntimeObjects.CompilerTools --version 0.2.12
NuGet\Install-Package Asteroid.RuntimeObjects.CompilerTools -Version 0.2.12
<PackageReference Include="Asteroid.RuntimeObjects.CompilerTools" Version="0.2.12"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Asteroid.RuntimeObjects.CompilerTools" Version="0.2.12" />
<PackageReference Include="Asteroid.RuntimeObjects.CompilerTools"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Asteroid.RuntimeObjects.CompilerTools --version 0.2.12
#r "nuget: Asteroid.RuntimeObjects.CompilerTools, 0.2.12"
#:package Asteroid.RuntimeObjects.CompilerTools@0.2.12
#addin nuget:?package=Asteroid.RuntimeObjects.CompilerTools&version=0.2.12
#tool nuget:?package=Asteroid.RuntimeObjects.CompilerTools&version=0.2.12
Asteroid.RuntimeObjects.CompilerTools
Asteroid.RuntimeObjects.CompilerTools provides the analyzer and source
generator paired with Asteroid.RuntimeObjects.
It validates runtime-object composition and component persistence declarations,
generates component forwarding APIs, and generates layered component SaveModels.
The package is referenced by Asteroid.RuntimeObjects and propagates its
analyzers and generators through buildTransitive.
Asteroid.RuntimeObjects.CompilerTools 是 Asteroid.RuntimeObjects 的配套编译期工具包。
它以独立 NuGet 包传播,运行时项目通过包引用自动获得分析器;开发环境可以通过根项目的本地模式引用源码项目。
当前职责
- 检查重复组件、组件依赖闭环、缺失能力提供者、多提供者冲突与默认提供者合法性(RT0027)。
(宿主类型闸 RT0001/RT0002/RT0004 已由各特性上的 TypeConstraint 声明化退役;
组件类型闸 RT0003 由
UseComponentAttribute<TComponent>泛型约束 CS0311 在语言层拦截。) - 为对象生成声明组件类型表(依赖序,命名
AsteroidCompositionTypes)与计划实例化接线——组合计划化,终态组合由运行时注册表结合修正器合成。 - 为对象生成面属性实现:partial、get-only、
I…Api命名接口类型的属性——后备字段 + 装配期按终态组合解析(非空=必备解析、可空=可选解析),成员长在接口上不做转发。 - 对象 public 成员闸:已声明化随
[RuntimeObject]走(RT0021/RT0024 退役)——对象是纯组合根,public 成员只允许面属性;约束栈=MemberKindConstraint 黑名单(Method/Field/Event)+ Members 层级的 Modifier/Accessor/Type/Name 约束(partial、get-only、IRuntimeApi 族、Api 后缀)。 - 修正器形状闸(RT0022):
[RuntimeObjectPatch]须贴在RuntimeObjectPatcher<TObject>的非抽象、公共无参构造派生上;未标记的派生报错防静默失效。 IRuntimeService族接口仅参与对象私有服务域注册,不生成公开转发 API。- 存档模型自动推断生成:声明层持有
[SaveMember]成员即生成,零成员派生叶沿基类链传递 (跨程序集基座以编译期已物化的嵌套SaveModel实体为链上锚点——私有成员标记与生成源码 在引用侧不可见);GenerateSaveModel = true为零成员层强制启用档(手写扩展层/空模型占位)。 - 把
[SaveMember]状态复制为使用显式成员发现策略的模型属性,并保留序列化配置。 - 让 sealed 持久化叶组件显式实现唯一的
ISaveModelConvertible<TModel>契约。 - 为抽象组件到 sealed 叶组件生成基类优先的模型读写和生命周期接入逻辑。
- 检查继承成员重名(RT0016)与孤儿手写模型(RT0026——
手写嵌套
SaveModel落在非生成层报错指路);成员形状闸(RT0014/RT0015)已随[SaveMember]声明化退役。
已随面制改造退役:能力句柄属性生成与名称派生、[RuntimeObjectApi] 标记及 RT0010/RT0011/RT0020——组件能力经对象面属性或 GetApi<T> 触达。
后续职责
对象数组的保存范围、$uid/$uref 引用解析和两阶段对象图恢复由后续阶段实现。
分析器只负责静态组合、面声明、修正器与持久化声明约束;对象创建、计划合成、服务注册、依赖注入与模型应用时序仍由运行时模块负责。
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.2.17 | 44 | 10/17/2026 |
| 0.2.16 | 88 | 10/12/2026 |
| 0.2.15 | 97 | 10/6/2026 |
| 0.2.14 | 105 | 9/27/2026 |
| 0.2.13 | 98 | 9/25/2026 |
| 0.2.12 | 102 | 9/25/2026 |
| 0.2.11 | 122 | 9/17/2026 |
| 0.2.10 | 103 | 9/12/2026 |
| 0.2.9 | 101 | 9/12/2026 |
| 0.2.8 | 116 | 9/8/2026 |
| 0.2.7 | 107 | 9/8/2026 |
| 0.2.6 | 140 | 9/7/2026 |
| 0.2.5 | 121 | 8/30/2026 |
| 0.2.4 | 115 | 8/28/2026 |
| 0.2.3 | 114 | 8/25/2026 |
| 0.2.2 | 104 | 8/25/2026 |
| 0.2.1 | 110 | 8/25/2026 |
| 0.2.0 | 110 | 8/22/2026 |