使用Roslyn获取在另一个类中使用的所有类和接口?

时间:2017-11-08 12:12:59

标签: roslyn

问题是:我有一些源文件:

namespace TestSln
{
    public class AAA
    {
        private DDD x;

        private void func(CCC z)
        {
            BBB b = new BBB();
            b.z();
        }
    }
}

我正在寻找的输出是这样的: AAA类使用:“DDD,CCC,BBB”

我如何通过Roslyn实现这一目标?

P.S。我希望能够阅读整个解决方案,并在所有项目中搜索此源文件中引用的类。

1 个答案:

答案 0 :(得分:0)

创建自己的SyntaxWalker,并在GetSymbol()上为SemanticModel中的每个节点调用Visit()。您只需将每个符号添加到Set<ISymbol>即可收集完整列表。