# 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.SourceGenerators` - `GFramework.Godot.SourceGenerators` ## 主要能力 ### 上下文注入与 `ContextAware` 该包支持围绕上下文感知类型生成辅助代码,例如: - `[ContextAware]` - `[GetModel]` - `[GetModels]` - `[GetSystem]` - `[GetSystems]` - `[GetUtility]` - `[GetUtilities]` - `[GetService]` - `[GetServices]` - `[GetAll]` 这类生成器适合用于 View、Controller、Godot 节点包装或其他需要频繁访问架构上下文的类型。 ### 日志辅助 支持通过生成器减少 `ILogger` 相关样板代码。 ### 注册分析器 包内还包含分析器,用来检查 `Model`、`System`、`Utility` 的使用点是否能在所属架构中找到静态可见注册,帮助尽早发现“代码可以编译、运行时却缺注册”的问题。 ## 最小接入路径 ```xml ``` 如果你想查看生成代码,可在消费者项目里启用: ```xml true Generated ``` ## 适用场景 - 你希望减少上下文绑定与日志相关样板代码 - 你需要在编译期发现部分注册可见性问题 - 你在做模块化架构,希望固定某些重复注册模式 ## 对应文档 - 源码生成器总览:[源码生成器文档首页](../docs/zh-CN/source-generators/index.md) - Core 栏目:[Core 文档首页](../docs/zh-CN/core/index.md)