獲得語義模型

有一些方法來獲得 sematic 模型。

  • 來自 Document

    Document document = ...;
    SemanticModel semanticModel = await document.GetSemanticModelAsync();
    
  • 來自 Compilationclass

    CSharpCompilation compilation = ...;
    var semanticModel = await compilation.GetSemanticModel(syntaxTree);
    
  • 從一個 AnalysisContext。例如,在 DiagnosticAnalyzer 中你可以做到:

    public override void Initialize(AnalysisContext context)
    {
        context.RegisterSemanticModelAction(x =>
        {
            var semanticModel = x.SemanticModel;
            // Do magical magic here.
        });
    }