Skip to content

常见场景实现完整参考

本系列文档提供常见源生成器场景的完整实现示例和最佳实践。


📋 文档信息

属性
难度中级到高级
阅读时间90 分钟
前置知识源生成器基础、Roslyn API
相关文档代码生成 API语义模型 API

🎯 学习目标

完成本系列文档后,你将能够:

  • ✅ 实现序列化生成器
  • ✅ 创建 ORM 映射生成器
  • ✅ 构建依赖注入生成器
  • ✅ 开发日志生成器
  • ✅ 实现 API 客户端生成器

📚 文档列表

本系列文档分为以下几个部分:

文档说明难度
代码生成场景序列化、Builder 模式、ToString 生成器中级
代码分析场景代码质量分析、性能分析、安全分析高级
代码转换场景代码重构、迁移、优化高级

🚀 快速开始

简单的序列化生成器

csharp
[Generator]
public class JsonSerializerGenerator : IIncrementalGenerator
{
    public void Initialize(IncrementalGeneratorInitializationContext context)
    {
        // 查找标记了特性的类
        var classes = context.SyntaxProvider
            .ForAttributeWithMetadataName(
                "JsonSerializableAttribute",
                predicate: (node, _) => node is ClassDeclarationSyntax,
                transform: (ctx, _) => GetClassInfo(ctx))
            .Where(x => x != null);
        
        // 生成代码
        context.RegisterSourceOutput(classes, (spc, classInfo) =>
        {
            var code = GenerateSerializerCode(classInfo);
            spc.AddSource($"{classInfo.Name}_Serializer.g.cs", code);
        });
    }
}

📊 场景分类

代码生成场景

  • 序列化生成器 - 自动生成 JSON/XML 序列化代码
  • Builder 模式生成器 - 为类生成流畅的 Builder API
  • ToString 生成器 - 自动生成格式化的 ToString 方法
  • ORM 映射生成器 - 生成数据库映射代码

代码分析场景

  • 代码质量分析 - 检测代码异味和反模式
  • 性能分析 - 识别性能瓶颈
  • 安全分析 - 检测安全漏洞

代码转换场景

  • 代码重构 - 自动化重构操作
  • API 迁移 - 辅助 API 版本迁移
  • 代码优化 - 自动优化代码

🔗 相关资源


🚀 下一步


最后更新: 2026-02-06

基于 MIT 许可发布