c# - Roslyn 中的 VisitClassDeclaration node.Identifier

标签 c# .net roslyn

如何找到声明所在的源文件中的行号?

最佳答案

免责声明:我在 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/

相关文章:

c# - 在 CSharpScript 的脚本类中访问全局变量

c# - 多个正则表达式数据注释验证

c# - 如何支持 dotnet core CreateDirectory 中的特殊字符到 NFS 文件共享

c# - 使用 Windows Identity Foundation 重定向到自定义登录页面

c# - 从代理服务器后面调用网络服务

c# - 如何在C#中制作一个简单的动态代理

c# - 如何在多行文本框中制作命令行

c# - 在 C# 中缓存 FileInfo 属性

.net - 获取 MetadataReference 的导出语义模型

c# - 如何获取所有用某些属性注释的属性?