博客文章
为什么 AdditionalFiles 生成器更接近真实生产场景
从配置输入、文件级元数据和多文件合并三个角度,说明 AdditionalFiles 案例为什么比单纯特性驱动更贴近真实业务。
很多人刚学源生成器时,只会写基于特性的主路径示例。
这类示例当然有价值,但一进入真实工程,输入就很快不再只是:
- 某个类型上有没有特性
- 某个符号有没有满足约束
真实项目里更常见的输入往往是:
- 配置文件
- JSON 片段
- 多文件组合
- 文件级元数据
- 项目级默认值
这正是 AdditionalFiles + AnalyzerConfigOptions 进入主舞台的原因。
为什么它更接近生产环境
因为它允许生成器处理下面这些常见问题:
- 一组输入文件如何按规则合并
- 某个文件如何声明自己的输出组
- 项目级默认值如何被文件级配置覆盖
- 配置错误时如何输出诊断,而不是静默失败
这些都比“看见一个特性就生成一段代码”更接近真实业务输入。
当前仓库做了什么
当前第二案例已经覆盖:
- 显式文件发现
- 文件名约定
- 目录约定
- 全局默认值
- 多输出组
- 嵌套 JSON 分组
- 条目前缀裁剪
- 契约强化与诊断输出
这意味着它已经不再是“演示型生成器”,而是一个更像真实产品原型的案例。