如果我有一个表达式产生一个结果,比如说,新的ClassA(),或者“somestring”,或者其他什么,并且我有一个相应的ExpressionSyntax对象,我如何得到对应于表达式结果的INamedTypeSymbol对象?
许多教程都提到了GetTypeInfo方法,但我在NuGet获得的最新Roslyn中找不到它。有什么东西可以取而代之吗?
更新:不知怎的,我有1.0版本的Roslyn。将其更新为1.2后,我找到了GetTypeInfo方法。
答案 0 :(得分:9)
您需要构建语义模型,如下所示:
var semanticModel = document.GetSemanticModel(cancellationToken);
var typeInfo = semanticModel.GetTypeInfo(expression, cancellationToken);