如何从类语法树中获取类语义模型?

时间:2015-10-30 14:48:09

标签: c# roslyn

如何从Roslyn的ITypeSymbol获取类语义模型(ClassDeclarationSyntax)?从这个语法树:

enter image description here

在我看来,我可以使用的唯一一点是ClassDeclaration,因为IdentifierToken之类的令牌无法传递给GetSymbolInfo方法。但是当我写作

context.SemanticModel.GetSymbolInfo(classDeclaration)

结果是

context.SemanticModel.GetSymbolInfo(classDeclaration)
{Microsoft.CodeAnalysis.SymbolInfo}
    CandidateReason: None
    CandidateSymbols: Length = 0
    IsEmpty: true
    Symbol: null
    _candidateSymbols: Length = 0

......所以没有比赛。我想知道问题是我要求错误的语法元素,或者问题实际上是我在问我分析类的属性并且类本身尚未准备好的那一刻。

1 个答案:

答案 0 :(得分:8)

您可以使用SemanticModel.GetDeclaredSymbol()