我试图使用FindReferencesAsync
找到类型符号的所有引用。它适用于C#项目中的引用;但是,不会出现跨项目引用。这是我正在使用的代码。
var model = compilation.GetSemanticModel(_sourceFile.GetSyntaxTree());
ISymbol classSymbol = model.GetDeclaredSymbol(typeDeclarationSyntax);
referencedSymbols.AddRange(SymbolFinder
.FindReferencesAsync(classSymbol, _solution)
.Result.ToList());
我花了相当长的时间来解决这个问题。除其他外,我尝试添加元引用和项目引用,但没有任何效果。最后,通过查看创建项目实例时提供的诊断信息,我能够解决它。一旦解决了诊断中报告的所有关键问题,我甚至可以在项目中看到符号的所有引用。