如何从 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
......所以没有匹配。我想知道问题是我要求错误的语法元素,还是问题实际上是我在分析类的属性时提出的问题,而类本身还没有准备好。
最佳答案
您可以使用 SemanticModel.GetDeclaredSymbol()
。
关于c# - 如何从类语法树中获取类语义模型?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33438729/