Я пытаюсь получить список всех типов в VS-решении, унаследованном от определенного типа. Ниже код кажется перечислить все классы в против решения, но не знаю, как фильтровать их по inhertance:Как перечислить все типы, унаследованные от определенного типа в решении?
var workspace = MSBuildWorkspace.Create();
CancellationToken cancellationToken = default(CancellationToken);
var solution = await workspace.OpenSolutionAsync(path, cancellationToken);
Project project = solution.Projects.First(p => p.Name == "WebApplication1");
var compilation = await project.GetCompilationAsync();
var classes = compilation.
GlobalNamespace.
GetNamespaceMembers().
SelectMany(x => x.GetMembers());
Большое вам спасибо. –
Джош, ты так быстро пригвоздил этот вопрос. Каковы хорошие ресурсы, которые я должен знать о Roslyn? Поиск в Google не очень помогает, поскольку обыски обычно попадают в исходный репозиторий Roslyn, что не очень полезно. Любая хорошая книга, которую вы рекомендуете? Еще раз спасибо. –
К сожалению, документации не так много, но я написал несколько сообщений в блоге о Roslyn, пока я изучал его: https://joshvarty.wordpress.com/learn-roslyn-now/ – JoshVarty