Skip to content

术语与 API 手册

这份手册现在改成“索引页 + 分册正文”的结构。

原因很简单:

  • 术语条目已经很多
  • 不同读者的查阅路径完全不同
  • 把所有对象都塞进一个文件,后续维护和跳转都会越来越差

如果你是第一次查对象,先从这个索引页判断“我应该进哪一册”;如果你已经知道对象名,直接跳到对应分册即可。

怎么使用这份手册

第一种用法:按学习阶段查

  • 🟢 第一阶段必学
    • 生成器骨架
    • 固定输出
    • 输出上下文
  • 🟡 第二阶段必学
    • 特性筛选
    • 语法与语义
    • 类型和属性信息
  • 🔴 进阶参考
    • 编译和测试
    • 驱动运行结果和步骤跟踪
    • AdditionalFiles、配置、诊断、文本对象

第二种用法:按问题查

你现在想查什么去哪里
生成器入口、初始化和输出terms/01-entry-and-output.md
语法筛选、语义分析、上下文对象terms/02-syntax-and-semantics.md
类、属性、类型、编译对象terms/03-symbols-and-types.md
特性参数、泛型约束、嵌套类型terms/04-attributes-and-generics.md
测试里怎么建编译、补引用、跑驱动terms/05-compilation-and-testing.md
如何看运行结果、跟踪步骤、理解增量组合terms/06-driver-and-tracking.md
如何读附加文件、配置、诊断、源码文本terms/07-additional-files-config-diagnostics.md

分册目录

🟢 第一阶段必学

  1. 入口与输出
    • [Generator]
    • IIncrementalGenerator
    • IncrementalGeneratorInitializationContext
    • RegisterPostInitializationOutput(...)
    • SourceProductionContext
    • AddSource(...)
    • RegisterSourceOutput(...)

🟡 第二阶段必学

  1. 语法与语义

    • SyntaxNode
    • ClassDeclarationSyntax
    • SyntaxProvider
    • ForAttributeWithMetadataName(...)
    • CreateSyntaxProvider(...)
    • GeneratorAttributeSyntaxContext
    • GeneratorSyntaxContext
    • SemanticModel
  2. 符号与类型

    • INamedTypeSymbol
    • IPropertySymbol
    • ITypeSymbol
    • Accessibility
    • NullableAnnotation
    • SpecialType
    • Compilation
    • GlobalNamespace
    • CompilationProvider
  3. 特性与泛型

    • AttributeData
    • AttributeClass
    • ConstructorArguments
    • NamedArguments
    • ITypeParameterSymbol
    • TypeParameters
    • ContainingType

🔴 进阶参考

  1. 编译与测试

    • CSharpSyntaxTree.ParseText(...)
    • CSharpCompilation.Create(...)
    • CSharpGeneratorDriver.Create(...)
    • MetadataReference
    • RunGeneratorsAndUpdateCompilation(...)
    • DiagnosticSeverity
    • SyntaxTree.FilePath
    • NormalizeWhitespace()
  2. 驱动与跟踪

    • GeneratorDriver
    • GetRunResult()
    • GeneratorDriverRunResult
    • GeneratorRunResult
    • GeneratedSourceResult
    • IncrementalValuesProvider<T>
    • Collect(...)
    • Combine(...)
    • WithComparer(...)
    • WithTrackingName(...)
    • GeneratorDriverOptions
    • IncrementalGeneratorRunStep
    • IncrementalStepRunReason
  3. 附加文件、配置、诊断与文本

    • AdditionalTextsProvider
    • AdditionalText
    • AnalyzerConfigOptionsProvider
    • AnalyzerConfigOptions
    • DiagnosticDescriptor
    • Diagnostic
    • Location
    • ReportDiagnostic(...)
    • SourceText
    • SourceText.From(...)
    • CancellationToken

最常用的回查顺序

  1. 先看 零基础主教程
  2. 遇到对象或方法不认识时,回到这个索引页
  3. 进入对应分册查“它是什么、关键成员是什么、能拿到什么”
  4. 如果你遇到的是报错或行为异常,改看 常见问题与排错

如果你刚学到第 12 章

建议配合这些扩展专题一起看:

和主教程怎么配合看

  • 看不懂入口:回到 第 4 章
  • 找不到目标类:回到 第 6 章
  • 分不清语法和语义:回到 第 7 章
  • 不知道怎么读类和属性:回到 第 8 章
  • 不知道怎么拼生成代码:回到 第 11 章
  • 想继续深入驱动、跟踪、附加文件、诊断:回到 第 12 章

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