系列

从零实现增量源生成器

第一季主线:从入口、发现、建模、渲染、诊断到测试,完整走通一个可维护的增量源生成器。

17 篇文章

这一季负责把第一条主线讲透:

  • 先建立增量生成器的正确心智模型
  • 再把入口、发现、建模和渲染这条链路跑通
  • 最后补上诊断、测试、调试和扩展方向
第一季阅读路线 先把增量生成器的骨架跑通,再去碰诊断、测试和调试
01

先立心智模型

先理解什么是增量生成器、项目结构为什么这样拆,以及 PostInitialization 为什么重要。

02

再看目标发现

把特性发现、语法过滤和 Symbol 提取串起来,先解决“谁会进入生成器”。

03

补建模与渲染

把类型模型、属性提取和输出代码接上,完成第一条真正可运行的生成链路。

04

最后收测试与调试

等主链路稳定后,再系统补诊断、调试方式、边界测试和下一步扩展方向。

如果你第一次系统接触 Roslyn 增量源生成器,这一季应该最先读完。

2026-03-22

第 5 篇

PostInitialization 为什么适合生成特性

把特性放到 PostInitialization 里生成,可以减少手写样板、降低接入成本,并让目标发现的入口更稳定。

PostInitialization Attribute Roslyn

2026-03-20

第 9 篇

属性怎么选,输出面就怎么长

主案例只选择公开、可读、非索引器、非静态属性,这不是保守,而是在明确生成器的输出面。

Properties OutputSurface Design

2026-03-21

第 10 篇

ToString 渲染层到底在解决什么问题

代码渲染不只是拼一段字符串,它要负责重新打开命名空间、嵌套类型和目标类型,并保证输出代码可编译。

代码生成 ToString 渲染

2026-03-21

第 15 篇

调试增量源生成器时,先看哪里

排错不要一上来盯着字符串渲染,先按入口、发现、模型、诊断、输出文件这条顺序查。

Debugging GeneratedFiles 排障