使用Roslyn映射DI依赖项

时间:2014-07-24 02:52:04

标签: c# roslyn

我正在尝试使用Roslyn绘制出在大型解决方案中发生的所有DI。我的目标是获得一棵树然后可以想象。我已经设法解析语法树以找到所有类和接口及其方法,以及它们定义的项目,但现在我发现自己陷入困境。

使用Roslyn进行此类分析的正确方法是什么?我是否在每个方法中遍历每个方法调用,寻找Autofac Register调用?这似乎既令人难以置信的尴尬和容易出错。我希望语义API在这里有用,但我找不到解决这个问题的好方法。

任何指向正确方向的人都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

如果要查找对特定方法的所有调用,最简单的方法是使用工作区图层SymbolFinder类型。

首先查看感兴趣的ISymbol,方法是使用Compilation.GetTypeByMetadataName获取类型,然后使用GetMembers("methodName")获取方法。然后,您可以致电SymbolFinder.FindReferencesAsync查找所有来电者。

相关问题