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

c# - 如何从类语法树中获取类语义模型?-LMLPHP

在我看来,我唯一可以使用的点是 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/

10-09 04:34