从零实现增量源生成器 · 第 6 / 17 篇

从入口方法看清主管线:生成器真正做了哪几步

入口方法不只是注册几个 API,它其实把整个生成器拆成了特性准备、目标发现、规格生成和源代码输出四个阶段。

理解生成器最好的切口之一,是直接从 Initialize 方法往下看。

当前主案例的入口虽然不长,但已经把主管线拆成四段:

  • RegisterPostInitializationOutput
  • ForAttributeWithMetadataName
  • GenerationSpecFactory.Create
  • RegisterSourceOutput

为什么入口层最值得先看

因为它决定了各阶段的责任边界。

如果入口层已经把职责拆清了,后面的扩展一般都还能收得住;如果入口层一开始就把发现、判断、输出揉在一起,后面每加一个条件都更难维护。

入口层真正提供的价值

不是“注册了几个 Roslyn API”,而是把整个问题拆成一条可观察的管线。只要这条管线清楚,调试、测试和演进都会更容易落地。

教程里很多细节都能回到这一点:入口方法决定的不是代码长度,而是结构质量。

教程导航

继续阅读

当前文章已经挂到教程顺序中,建议按相邻章节继续。

上一篇 PostInitialization 为什么适合生成特性 把特性放到 PostInitialization 里生成,可以减少手写样板、降低接入成本,并让目标发现的入口更稳定。 下一篇 目标类型发现,为什么不能靠全文扫描 目标发现不是把所有类型扫一遍再碰运气,而是尽早缩小候选集,再把语义判断放进转换阶段。
查看系列目录 查看全部文章

标签

分类