博客文章

为什么 AdditionalFiles 生成器更接近真实生产场景

从配置输入、文件级元数据和多文件合并三个角度,说明 AdditionalFiles 案例为什么比单纯特性驱动更贴近真实业务。

很多人刚学源生成器时,只会写基于特性的主路径示例。

这类示例当然有价值,但一进入真实工程,输入就很快不再只是:

  • 某个类型上有没有特性
  • 某个符号有没有满足约束

真实项目里更常见的输入往往是:

  • 配置文件
  • JSON 片段
  • 多文件组合
  • 文件级元数据
  • 项目级默认值

这正是 AdditionalFiles + AnalyzerConfigOptions 进入主舞台的原因。

为什么它更接近生产环境

因为它允许生成器处理下面这些常见问题:

  • 一组输入文件如何按规则合并
  • 某个文件如何声明自己的输出组
  • 项目级默认值如何被文件级配置覆盖
  • 配置错误时如何输出诊断,而不是静默失败

这些都比“看见一个特性就生成一段代码”更接近真实业务输入。

当前仓库做了什么

当前第二案例已经覆盖:

  • 显式文件发现
  • 文件名约定
  • 目录约定
  • 全局默认值
  • 多输出组
  • 嵌套 JSON 分组
  • 条目前缀裁剪
  • 契约强化与诊断输出

这意味着它已经不再是“演示型生成器”,而是一个更像真实产品原型的案例。

标签

分类