mirror of
https://github.com/GeWuYou/GFramework.git
synced 2026-05-06 16:16:44 +08:00
- 调整文档真实性原则,以源码和测试为首要证据源 - 新增模块README要求,规定所有用户包必须有说明文档 - 更新仓库文档规范,要求根README与文档站点分类一致 - 添加VitePress配置文件,支持中文搜索和泛型转义 - 创建入门指南文档,说明GFramework模块组成和接入路径 - 添加快速开始教程,演示Core模块最小使用示例 - 为Core模块添加详细README文档 - 为Core.Abstractions添加契约层说明文档 - 为Core.SourceGenerators添加源码生成器文档 - 为Game模块添加运行时层详细说明文档
2.5 KiB
2.5 KiB
GFramework.Core.SourceGenerators
GFramework.Core.SourceGenerators 承载 Core 侧的通用源码生成器与分析器,用来减少样板代码并把部分约束前移到编译期。
模块定位
这个包属于编译期工具链,不是运行时库。
当前仓库中的主要目录:
Architectures/Analyzers/Bases/Enums/Logging/Rule/Diagnostics/
对应的生成器家族主要包括:
- 日志相关生成器
ContextAware及上下文注入辅助- 枚举扩展生成器
- 优先级相关生成器
- 模块自动注册
- 注册可见性分析器
包关系
- 运行时:
GFramework.Core - 契约与特性:
GFramework.Core.SourceGenerators.Abstractions - 公共生成器支撑:
GFramework.SourceGenerators.Common
如果你还需要游戏配置 schema 生成或 Godot 专用生成器,应分别安装:
GFramework.Game.SourceGeneratorsGFramework.Godot.SourceGenerators
主要能力
上下文注入与 ContextAware
该包支持围绕上下文感知类型生成辅助代码,例如:
[ContextAware][GetModel][GetModels][GetSystem][GetSystems][GetUtility][GetUtilities][GetService][GetServices][GetAll]
这类生成器适合用于 View、Controller、Godot 节点包装或其他需要频繁访问架构上下文的类型。
日志辅助
支持通过生成器减少 ILogger 相关样板代码。
注册分析器
包内还包含分析器,用来检查 Model、System、Utility 的使用点是否能在所属架构中找到静态可见注册,帮助尽早发现“代码可以编译、运行时却缺注册”的问题。
最小接入路径
<ItemGroup>
<PackageReference Include="GeWuYou.GFramework.Core.SourceGenerators"
Version="x.y.z"
PrivateAssets="all"
ExcludeAssets="runtime" />
</ItemGroup>
如果你想查看生成代码,可在消费者项目里启用:
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
适用场景
- 你希望减少上下文绑定与日志相关样板代码
- 你需要在编译期发现部分注册可见性问题
- 你在做模块化架构,希望固定某些重复注册模式
对应文档
- 源码生成器总览:
../docs/zh-CN/source-generators/index.md - Core 栏目:
../docs/zh-CN/core/index.md