我正在写一个源代码生成器,想知道如何找到一个给定的ClassDeclarationSyntax
节点的文件路径。下面是一个我希望能够使用它的例子。
IEnumerable<SyntaxNode> allNodes = compilation.SyntaxTrees.SelectMany(s => s.GetRoot().DescendantNodes());
IEnumerable<ClassDeclarationSyntax> allClasses = allNodes.Where(d => d.IsKind(SyntaxKind.ClassDeclaration))
.OfType<ClassDeclarationSyntax>();
IEnumerable<string> filePaths = allClasses.Select(x=> x.GetFilePath());
2条答案
按热度按时间hkmswyz61#
可以使用以下代码获取包含文件的路径:
kq4fsx7k2#
对于那些希望在单元测试中实现这一点的人。当手动创建一个语法树时,你还需要填充路径参数。
然后,在生成器中,您可以用途: