小编use*_*817的帖子

在解决方案中使用Roslyn检索所有类型

有谁知道如何检索解决方案中的所有可用类型(语义)?从多个项目中创建汇编很容易。

MSBuildWorkspace workspace = MSBuildWorkspace.Create();
var solution = await workspace.OpenSolutionAsync(solutionPath, cancellationToken);
var compilations = await Task.WhenAll(solution.Projects.Select(x => x.GetCompilationAsync(cancellationToken)));
Run Code Online (Sandbox Code Playgroud)

仅迭代所有ClassDeclarations对我来说是不够的,因为我想要所有类型以及它们之间的连接。

foreach (var tree in compilation.SyntaxTrees)
{
    var source = tree.GetRoot(cancellationToken).DescendantNodes();
    var classDeclarations = source.OfType<ClassDeclarationSyntax>();
}
Run Code Online (Sandbox Code Playgroud)

c# roslyn

3
推荐指数
1
解决办法
1039
查看次数

标签 统计

c# ×1

roslyn ×1