mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-07 00:39:00 +08:00
- 更新 Cqrs family landing、API 参考与 source-generators 导航 - 新增 CQRS handler registry 专题页并补充 XML inventory - 补充 runtime 与 generator 内部类型 XML 注释 - 记录 RP-004 验证结果与后续恢复点
3.7 KiB
3.7 KiB
Source Generators
Source Generators 栏目对应 GFramework 当前按模块拆分发布的编译期工具链。
这里的重点不是“存在一个统一的大生成器包”,而是帮助你确认应该安装哪个生成器包、它服务哪个运行时模块,以及继续去看哪一类专题页。
当前包拆分
GFramework 当前发布的生成器包是:
GeWuYou.GFramework.Core.SourceGeneratorsGeWuYou.GFramework.Game.SourceGeneratorsGeWuYou.GFramework.Cqrs.SourceGeneratorsGeWuYou.GFramework.Godot.SourceGenerators
不存在 GeWuYou.GFramework.SourceGenerators 或 *.SourceGenerators.Attributes 这类聚合包。
先按场景选包
- 想减少日志、上下文注入、模块自动注册等 Core 侧样板代码:
- 选择
GeWuYou.GFramework.Core.SourceGenerators
- 选择
- 想把
schemas/**/*.schema.json生成成配置类型和表包装:- 选择
GeWuYou.GFramework.Game.SourceGenerators
- 选择
- 想让 CQRS handler registry 在编译期生成,缩小运行时反射扫描范围:
- 选择
GeWuYou.GFramework.Cqrs.SourceGenerators
- 选择
- 想在 Godot 项目里生成 AutoLoad / Input Action 入口,或减少节点与信号样板代码:
- 选择
GeWuYou.GFramework.Godot.SourceGenerators
- 选择
与运行时的关系
这些包都是编译期工具链,不是运行时库。
对应关系如下:
| 生成器包 | 主要服务的运行时 |
|---|---|
GFramework.Core.SourceGenerators |
GFramework.Core |
GFramework.Game.SourceGenerators |
GFramework.Game |
GFramework.Cqrs.SourceGenerators |
GFramework.Cqrs |
GFramework.Godot.SourceGenerators |
GFramework.Godot |
安装时通常保持生成器包与对应运行时包版本一致,并将生成器声明为:
<PackageReference Include="GeWuYou.GFramework.Core.SourceGenerators"
Version="x.y.z"
PrivateAssets="all"
ExcludeAssets="runtime" />
其他生成器包的安装模式相同。
这个栏目怎么读
Core 侧通用生成器
- logging-generator
- context-aware-generator
- context-get-generator
- enum-generator
- priority-generator
- auto-register-module-generator
Game / CQRS 相关生成器
- 配置 schema 生成与运行时接法:
- CQRS handler registry 生成器:
- CQRS 模块族采用入口:
Godot 专用生成器
- godot-project-generator
- get-node-generator
- bind-node-signal-generator
- auto-ui-page-generator
- auto-scene-generator
- auto-register-exported-collections-generator
推荐接入顺序
- 先确认你已经选定运行时层,而不是先装生成器
- 再按运行时模块补充对应的生成器包
- 只在确实需要的项目里安装生成器,避免为了“可能以后会用”而把所有包一起引入
例如:
- 新项目只需要 Core 上下文注入和日志辅助:
- 安装
Core+Core.SourceGenerators
- 安装
- 需要静态 YAML 配置:
- 安装
Game+Game.SourceGenerators
- 安装
- 需要 CQRS 生成注册表:
- 安装
Cqrs+Cqrs.SourceGenerators
- 安装
对应模块入口
GFramework.Core.SourceGenerators/README.mdGFramework.Game.SourceGenerators/README.mdGFramework.Cqrs.SourceGenerators/README.mdGFramework.Godot.SourceGenerators/README.md