如何找到声明所在的源文件中的行号?
最佳答案
免责声明:我在 Microsoft 的 Roslyn 团队工作。
您可以使用 ISyntaxTree.GetLineSpan()
方法转换为行号。例如,给定一个 ISymbol
“symbol”,您可以通过以下方式获取第一个定义的起始位置:
var loc = symbol.Locations.First();
var lineSpan = loc.SourceTree.GetLineSpan(loc.SourceSpan,
usePreprocessorDirectives: false);
var line = lineSpan.StartLinePosition.Line;
var character = lineSpan.StartLinePosition.Character;
从标题来看,您似乎是从 SyntaxNode
开始的,因此您可以直接使用 Span
属性。
关于c# - Roslyn 中的 VisitClassDeclaration node.Identifier,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7907202/