Microsoft.CodeAnalysis, Renamer не переименовывает или не находит все символы в классе.NETcoreapp2.1, AdhocWorkspace
У меня есть несколько странный пример использования Roslyn и AdhocWorkspace для переименования ссылки на функцию. Прежде всего, я должен начать с объяснения - в этом проекте происходит много переименований, это единственный раз, когда он не работает и выглядит немного аномально. Код ниже, я сделал некоторые ссылки немного более общими для безопасности.
Во-первых, класс со ссылками я пытаюсь переименовать...
public class ApplicationEntity : BaseAggregateRoot
{
private ApplicationEntity(Guid id) : base(id)
{
}
protected override void RegisterEvents()
{
RegisterEvent<ApplicationEntityAdded>(OnApplicationEntityAdded);
}
private void OnApplicationEntityAdded(ApplicationEntityAdded args)
{
Id = args.AggregateId;
}
}
Моя функция переименования...
public async Task<AdhocWorkspace> UpdateSymbols(AdhocWorkspace workspace, ProjectId projectId, string oldValue, string newValue)
{
var solution = workspace.CurrentSolution;
var project = solution.GetProject(projectId);
var compilation = await project.GetCompilationAsync();
var symbol = compilation.GetSymbolsWithName(s => string.Compare(s, oldValue) == 0, SymbolFilter.All).FirstOrDefault();
var refs = await SymbolFinder.FindReferencesAsync(symbol, solution);
if (symbol != null)
{
solution = await Renamer.RenameSymbolAsync(solution, symbol, newValue, solution.Workspace.Options);
var success = workspace.TryApplyChanges(solution);
solution = workspace.CurrentSolution;
}
return workspace;
}
... и мой призыв в это...
workspace = await adhocWorkplaceManager.UpdateSymbols(workspace, currentProject.Id, "OnApplicationEntityAdded", $"On{name}Added");
solution = workspace.CurrentSolution;
Я пытаюсь переименовать функцию OnApplicationEntityAdded. Код переименовывает саму функцию, но не ссылку на нее в функции RegisterEvents. Когда я захожу в сам файл и меняю имя обратно, Roslyn / Intellisense может видеть, что они связаны, есть что-то, что я пропускаю? Это потенциально проблема с AdhocWorkspace? Весь проект создается, и все файлы и ссылки на проекты добавляются в рабочую область правильно, я даже пытался сделать все ссылки общедоступными.
Дайте мне знать, если что-то нужно уточнить. Framework .NET Core 2.1, по-видимому, пока не является для него тегом