如何从Roslyn的ITypeSymbol
获取类语义模型(ClassDeclarationSyntax
)?从这个语法树:
在我看来,我可以使用的唯一一点是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
......所以没有比赛。我想知道问题是我要求错误的语法元素,或者问题实际上是我在问我分析类的属性并且类本身尚未准备好的那一刻。
答案 0 :(得分:8)
您可以使用SemanticModel.GetDeclaredSymbol()
。