C# 如何在源生成器中查找类声明的文件路径
标题很好地解释了这一点。我正在编写一个源代码生成器,想知道如何找到给定C# 如何在源生成器中查找类声明的文件路径,c#,.net,sourcegenerators,C#,.net,Sourcegenerators,标题很好地解释了这一点。我正在编写一个源代码生成器,想知道如何找到给定ClassDeclarationSyntax节点的文件路径。下面是一个我希望能够使用它的示例 IEnumerable<SyntaxNode> allNodes = compilation.SyntaxTrees.SelectMany(s => s.GetRoot().DescendantNodes()); IEnumerable<ClassDeclarationSyntax> allClasses
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());
IEnumerable allNodes=compilation.SyntaxTrees.SelectMany(s=>s.GetRoot().degenantNodes());
IEnumerable allClasses=allNodes.Where(d=>d.IsKind(SyntaxKind.ClassDeclaration))
.of type();
IEnumerable filepath=allClasses.Select(x=>x.GetFilePath());
您可以使用以下代码获取包含的文件路径:
SyntaxNode=。。。;
_=node.SyntaxTree.FilePath;
_=node.GetLocation().SourceTree?.FilePath//SourceTree可以为空