我正在尝试在整个解决方案中找到对方法的引用。以下是代码段。除了一个解决方案之外,相同的代码段适用于所有解决方案。我订阅了workspaceFailed事件,没有工作空间或解决方案加载错误。我甚至以编程方式删除了重复的引用。
var semanticModel = document.GetSemanticModelAsync().Result;
var syntaxTree = semanticModel.SyntaxTree;
var methodDeclarations =
syntaxTree.GetRootAsync().Result.DescendantNodes().OfType<MethodDeclarationSyntax>().Where(m => m.Identifier.ValueText.Equals(criteria.SymbolName));
foreach(var methodDeclaration in methodDeclarations)
{
var node = semanticModel.GetDeclaredSymbol(methodDeclaration);
var references = SymbolFinder.FindReferencesAsync(node, solution).Result.ToList();
symbolReferences.AddRange(references);
}
对于所有解决方案,诊断会返回错误列表,例如System.string not found
,System.Object not found
等。由于它在解决方案中很常见,我忽略了它。
有什么理由可以解决这个问题吗? 关于在哪里查看或如何使其工作的任何建议?