我使用Roslyn重写整个解决方案中使用的一些方法。
我能够找到并修复许多实例。但是,它没有找到所有参考文献。使用CodeLens或使用" Find All References在Visual Studio中显示更多内容。"解决方案编译时没有错误。
它未找到的引用似乎只是解决方案中从Web应用程序调用的重载方法。但是它在这些Web应用程序中找到了对非重载方法的引用。
我找到必要方法的符号并循环遍历它们,搜索这样的引用:
MSBuildWorkspace workspace = MSBuildWorkspace.Create();
Solution solution = await workspace.OpenSolutionAsync(@"..\Solutions\Main.sln");
var symbols = await FindSymbols(solution);
foreach (var symbol in symbols)
{
var callers = await SymbolFinder.FindCallersAsync(symbol, solution);
// Modify code
}
workspace.TryApplyChanges(solution);
我还试过SymbolFinder.FindReferencesAsync()
,但也找不到其余的引用。
我无法弄清楚如何让Roslyn找到Visual Studio中的这些附加引用。