Roslyn - Использование

Page / - Изменено Alexandr Fokin в 2023/07/02 10:54

Использование

Изменено Alexandr Fokin

в 2023/07/02 10:54

Оглавление

//Nuget:
//Microsoft.CodeAnalysis
//Microsoft.CodeAnalysis.Common
//Microsoft.CodeAnalysis.Workspaces.Common
//Microsoft.CodeAnalysis.Workspaces.MSBuild
//Microsoft.Build.Locator
MSBuildLocator.RegisterDefaults();
using (var msWorkspace = MSBuildWorkspace.Create())
{
msWorkspace.WorkspaceFailed += (object sender, WorkspaceDiagnosticEventArgs e) =>
{
//loadSolutionError = e;
//Error handler
};
var solution = await msWorkspace.OpenSolutionAsync(solutionPath);
var projects = solution.Projects;
// ...
}

Для исследования кода можно использовать либо Visitor (CSharpSyntaxRewriter), либо получение списка всех синтаксических выражений в документе.

Для использования механизма поиска ссылок используется класс Microsoft.CodeAnalysis.FindSymbols.SymbolFinder.

DustinCampbell/using-msbuildworkspace.md
https://gist.github.com/DustinCampbell/32cd69d04ea1c08a16ae5c4cd21dd3a3