我需要从给定的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/