【发布时间】:2022-02-09 00:00:07
【问题描述】:
感谢Roslyn,可以访问.Net 编译器,在我们的项目Gcop 中,我们需要有调用方法的引用列表。
VS IDE 显示的参考地方非常适合这样:
实际上,我想了解哪个类/名称空间甚至程序集通过Roslyn C# 语法调用我的方法。
目前我可以在这里访问 MethodSymbol:
var methodSymbol = semanticModel.GetSymbolInfo(invocation).Symbol as IMethodSymbol;
我应该写什么来访问这个方法的引用?
//最近添加以进行双重检查
var solutionPath = Utilities.DteExtensions.SolutionFullPath;
var msWorkspace = Microsoft.CodeAnalysis.MSBuild.MSBuildWorkspace.Create();
var solution = msWorkspace.OpenSolutionAsync(solutionPath).Result;
var result = new List<ReferenceLocation>();
var refrences = SymbolFinder.FindReferencesAsync(methodSymbol, solution).Result;
foreach (var refernc in refrences)
{
foreach (var location in refernc.Locations)
{
result.Add(location);
}
}
///???????? why the result is empty ?
【问题讨论】:
标签: c# roslyn roslyn-code-analysis