Skip to content

Roslyn 源生成器从零基础到可维护实现

围绕 sample/01-tostring-generator 的 12 章教程、术语分册、FAQ 与扩展专题

源生成器教程

源生成器学习导航

这套文档面向第一次接触 C# 源生成器的读者,目标不是让你一口气背完所有 Roslyn API,而是让你先看见效果、再理解结构、再逐步读懂对象和方法。

主教程

适合第一次接触源生成器的读者,先按 12 章顺着学。

源码导读

适合先建立“源码在哪、先看什么、生成结果在哪”的地图。

术语与 API

适合在阅读代码时随查对象和方法,不需要从头背到尾。

常见问题与排错

适合判断自己卡在概念、目标筛选、生成输出还是测试调试。

练习路线

适合学完 sample/01 之后,继续进入 sample/02-09。

推荐学习路径

路线 A:完全零基础

  1. 先读 零基础主教程
  2. 再读 源码导读,先建立文件地图
  3. 跟着运行 sample/01-tostring-generator
  4. 遇到名词和接口不懂时,查 术语与 API 手册
  5. 卡住时用 常见问题与排错 自检
  6. 完成主教程后继续看 练习项目与下一步学习

路线 B:会 C#,但不会 Roslyn

  1. 先读 零基础主教程 的第 2-5 章
  2. 再读 源码导读,把主案例文件串起来
  3. 再读 术语与 API 手册 的第一阶段必学和第二阶段必学
  4. 回到 sample/01-tostring-generator/ToStringGenerator/ToStringGenerator.cs 对照阅读
  5. 再用 练习项目与下一步学习 规划后续路线

路线 C:只想快速查对象和方法

  1. 直接打开 术语与 API 手册
  2. 需要先定位文件时打开 源码导读
  3. 需要查排错顺序时打开 常见问题与排错
  4. 需要继续安排练习时打开 练习项目与下一步学习

站点结构

区域作用入口
主教程围绕 `sample/01-tostring-generator` 建立完整主线进入目录
源码导读集中说明主案例里的关键文件、生成结果和测试入口进入导读
术语分册按对象族拆开解释“能拿到什么”查看索引
FAQ按症状分组排错查看入口
扩展专题继续处理驱动结果、跟踪、附加文件、诊断从专题 1 开始

文档分工

  • 零基础主教程
    • 主线教程
    • 采用 12 章结构
    • 从固定输出逐步过渡到完整 ToString 实现
  • 源码导读
    • 地图型文档
    • 先把仓库里的关键文件和调用链讲清楚
    • 适合配合第 1-3 章一起读
  • 术语与 API 手册
    • 查询型文档
    • 现在是“索引页 + 分册正文”
    • 按学习阶段分级
    • 重点说明对象、方法、属性能拿到什么
  • 常见问题与排错
    • 诊断型文档
    • 现在是“诊断首页 + 分组正文”
    • 帮你判断卡在概念、管道、语义分析还是代码生成
  • ./advanced/
    • 扩展专题
    • 承接第 12 章之后的驱动、跟踪、附加文件、诊断等高级链路
  • 练习项目与下一步学习
    • 过渡型文档
    • 帮你从 sample/01 平滑进入 sample/02-09

当前主案例

整套教程都围绕这个主案例展开:

  • sample/01-tostring-generator/ToStringGenerator/ToStringGenerator.cs
  • sample/01-tostring-generator/ToStringGenerator/ToStringGenerator.csproj
  • sample/01-tostring-generator/ToStringGenerator.Sample/ToStringGenerator.Sample.csproj
  • sample/01-tostring-generator/ToStringGenerator.Sample/Program.cs
  • sample/01-tostring-generator/ToStringGenerator.Tests/TestHelpers.cs
  • sample/01-tostring-generator/ToStringGenerator.Tests/ToStringGeneratorTests.cs

如果你想先看“这些文件为什么重要”,直接从 源码导读 开始。

你会经历的四个学习里程碑

  • 里程碑 1:你已经能生成固定代码
  • 里程碑 2:你已经能找到目标并读取信息
  • 里程碑 3:你已经能生成完整功能
  • 里程碑 4:你已经准备好进入后续练习

基于当前仓库文档副本构建的 VitePress 站点