【问题标题】:How to Find File Path of Class Declaration in a Source Generator如何在源生成器中查找类声明的文件路径
【发布时间】:2021-04-29 00:38:48
【问题描述】:

标题几乎解释了它。我正在编写一个源生成器,想知道如何找到给定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());

【问题讨论】:

    标签: c# .net sourcegenerators


    【解决方案1】:

    您可以使用以下代码获取包含的文件路径:

    SyntaxNode node = ...;
    _ = node.SyntaxTree.FilePath;
    _ = node.GetLocation().SourceTree?.FilePath // SourceTree can be null
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 2023-04-04
      • 2015-04-05
      相关资源
      最近更新 更多