我需要从给定的SymbolAnalysisContext访问语法树(完整的源文件文本)。我发现我可以给context.Compilation.SyntaxTrees打电话,但是从这些电话中选择哪一个呢?还有别的办法吗?
发布于 2016-06-08 08:58:14
符号可以在一个或多个SyntaxTrees中定义,也可以在元数据中定义(通过引用)。您可以通过ISymbol.Locations获得所有这些信息,后者:
获取在源或元数据中最初定义符号的位置。某些符号(例如,部分类)可以在多个位置定义。
如果您只在源中定义的元素之间进行交互,那么您可以这样做:
var syntaxTrees = from x in context.Symbol.Locations
where x.IsInSource
select x.SourceTree;https://stackoverflow.com/questions/37695086
复制相似问题