我正在为Visual Studio创建na分析器,我需要SymbolFinder.FindSourceDefinitionAsync(ISymbol,Solution)所需的Solution属性,以确保我真正操作我想要的类型。
public static async Task<ITypeSymbol> GetBaseScenario(ITypeSymbol type)
{
if (type == null)
return null;
var origType = await SymbolFinder.FindSourceDefinitionAsync(type, _solution);
if (BaseScnSymbols.Contains(origType) || BaseVersionScnSymbols.Contains(origType))
return origType as ITypeSymbol;
return null;
}
我可以获得语义模型,编译,但我无法得到解决方案。 我怎样才能得到解决方案?这个问题有更好的方法吗?
答案 0 :(得分:2)
在分析仪期间,您不能并且通常不应尝试访问解决方案。这是为了表现和正确。 This answer仍然适用。如果您描述实际情况,通常会有一种方法无法获得解决方案。
答案 1 :(得分:0)
据我所知,获得解决方案符号的唯一方法是使用MSBuildWorkspace.OpenSolutionAsync通过物理路径加载它。