FindReferencesAsync在一个特定解决方案中找不到引用

时间:2017-10-31 18:20:37

标签: c# roslyn roslyn-code-analysis

我正在尝试在整个解决方案中找到对方法的引用。以下是代码段。除了一个解决方案之外,相同的代码段适用于所有解决方案。我订阅了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 foundSystem.Object not found等。由于它在解决方案中很常见,我忽略了它。

有什么理由可以解决这个问题吗? 关于在哪里查看或如何使其工作的任何建议?

0 个答案:

没有答案