我需要从给定的SymbolAnalysisContext访问语法树(完整的源文件文本)。我发现我可以打电话给context.Compilation.SyntaxTrees,但是从中选择哪个?还有另一种方法吗?

最佳答案

可以在一个或多个SyntaxTrees或元数据中定义符号(通过引用)。您可以通过ISymbol.Locations获得所有这些信息,其中:


  获取源或原始定义符号的位置
   元数据。某些符号(例如,部分类)可能在一个以上的位置中定义。


如果您只是对源代码中定义的内容感兴趣,则可以执行以下操作:

var syntaxTrees = from x in context.Symbol.Locations
                  where x.IsInSource
                  select x.SourceTree;

关于c# - 从SymbolAnalysisContext获取语法树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37695086/

10-11 02:12