为什么引用符号的位置为空

本文关键字:位置 引用 符号 为什么 | 更新日期: 2023-09-27 18:37:26

我正在尝试查找特定符号解决方案中的所有引用,但位置属性始终为空。我加载独立项目,找到我正在寻找的符号,然后要求编译给我对符号的所有引用。我得到一个引用(正确,因为只有一个属性用法),但位置属性为空。这是代码

IWorkspace workspace = Workspace.LoadStandAloneProject(projectPath);
var solution = workspace.CurrentSolution;
var searchAttributeName = typeof(OneToOneAttribute).FullName;
var project = solution.Projects.First();
var compilation = project.GetCompilation();
var attSymbol = (NamedTypeSymbol)compilation.GetTypeByMetadataName(searchAttributeName);
var references = attSymbol.FindReferences(solution);
    foreach (ReferencedSymbol referencedSymbol in references)
    {
        foreach (ReferenceLocation location in referencedSymbol.Locations)
        {
        }
    }

为什么引用符号的位置为空

正如评论中所讨论的,LoadStandAloneProject 没有正确创建您的项目引用。正确的解决方法是使用LoadSolution。