提醒您!

此為歷史活動,如您對本活動有興趣,您可以從以下管道得到我們最新活動資訊:

活動等級:中階→進階

這是一場專為中高階 C# 開發者量身打造的技術實戰活動,聚焦於 .NET 編譯流程中的神秘利器 Source Generator

從實戰出發,透過 10 組高強度範例專案,帶你逐步掌握 Enum-to-String、NotifyPropertyChanged 到 Interceptor 的多樣應用場景,並延伸到 SyntaxProvider 模型轉換與 Diagnostic 檢測等進階技巧。

你將深入探索 Roslyn 的核心組件(如 Syntax API 與 SemanticModel),學習如何在 編譯時自動生成高效能的程式碼,大幅簡化樣板流程、強化可維護性,同時精準對應現代企業在程式碼穩定性、高效能、與開發流程自動化上的實務需求。

這不只是學寫 Generator,而是打造懂你邏輯、能與你共舞的程式分身。若你想學的不只是語法,而是如何把 Source Generator 真正「用起來」,這堂課會是你駛向 Roslyn 深海的船票。

活動規劃

  • 課程介紹與基礎概念
    • 教材與範例說明
    • Source Generator 概述
    • 為什麼需要 Source Generator
  • C# 編譯流程與開發環境設置
    • C# Compile Pipeline
    • 前置作業
    • 專案設定
  • Hello Generator 入門範例
    • Generator Class 基本需求  
    • 第一個 Source Generator 實作
    • Debug Source Generator 技巧
  • 核心 API 與參數詳解
    • Initialize 核心參數
    • IncrementalGeneratorInitializationContext 結構
    • Providers 類型
    • 三種輸出程式碼的方法
    • IncrementalValueProviderExtensions 擴充方法
  • 實戰專案 - Enum To String (六個版本演進)
    • Version 1: 基礎實作
      • 基本 Enum 擴充方法生成
      • 效能比較分析
      • 基礎 predicate 和 transform 實作
      • Syntax API 深入探討
        • Syntax Tree 結構 
        • 三種語法結構主要型別
        • 語法節點繼承樹
      • Semantic Model 語意模型
        • GeneratorSyntaxContext 結構
        • ModelExtensions 類別
        • 從 Syntax 取得 ISymbol
        • ITypeSymbol Interface
        • AttributeData 類別應用
        • ISymbol.ToDisplayString 格式化
    • Version 2: 改善語意模型處理
      • 使用 ForAttributeWithMetadataName
      • 簡化 Attribute 識別
      • 開發環境效能優化
    • Version 3: 自訂 Generator Model
      • 建立 EnumGeneratorModel
      • 效能快取機制
    • Version 4: 資料模型改善
      • 使用 struct 和 record
      • 應用 SrcGenBoost 套件
    • Version 5: 外部 Enum 支援
      • ExistEnum Attribute 設計
      • Partial Class 擴充方法
      • TypedConstant 結構應用
    • Version 6: 診斷功能
      • Report Diagnostics 實作
      • DiagnosticDescriptor 設定
      • 錯誤診斷與回報機制
  • NuGet 套件打包
    •  打包步驟詳解
  • 實戰專案 - Notify Property Changed (兩個版本)
    • Version 1: 基礎屬性通知
      • Partial Property 處理
      • 適當的 Diagnostic Location 處理
    • Version 2: 進階屬性通知
      • NotifyAnother Attribute 支援
      • 屬性相依關係處理
  • 八、Interceptor 攔截器
    • Interceptor 簡介與優勢
    • InterceptsLocationAttribute 應用
    • Stopwatch Measure 實戰範例
    • 自訂編譯選項處理
  • 九、測試策略與實作
    • Diagnostic Report 測試
    • Transform Result 測試
    • Syntax Tree 測試

適合對象

  • 對 C# 語言與編譯器技術有熱情的工程師
  • 希望減少 boilerplate、提升維護性與一致性的開發團隊
  • 想導入 Source Generator 至現有架構中的技術領導人或架構師

重點特色

實戰案例引領  

  •   透過 10 個完整範例,從入門到進階循序漸進:  
    • 6 種 Enum-to-String 產碼策略,涵蓋多種使用情境  
    • 2 種 NotifyPropertyChanged 實作與進階延伸  
    • 1 個編譯期 Interceptor 範例,掌握方法攔截與程式碼注入  
    • 1 個測試專案,驗證 SyntaxProvider 轉換模型、程式碼輸出與 Diagnostic 正確性  

理論+實務並進

  •   以「動手實作」為起點,再回頭拆解核心原理,帶你構建完整的 Roslyn 知識地圖。

全面技術覆蓋

  •   深入探討:  
    •   Roslyn 核心:Syntax API、SemanticModel 
    •   增量生成:Incremental Generator 
    •   高階產碼技巧:Attribute 驅動、partial class、語意 (metadata-driven) 分析  
    •   Interceptor & CallTarget 實務應用  
    •   徹底測試:GeneratorDriver、TrackedSteps 觀測與驗證