在Roslyn中获取表达式的结果

时间:2013-10-22 09:44:42

标签: c# roslyn

如果我有一个表达式产生一个结果,比如说,新的ClassA(),或者“somestring”,或者其他什么,并且我有一个相应的ExpressionSyntax对象,我如何得到对应于表达式结果的INamedTypeSymbol对象?

许多教程都提到了GetTypeInfo方法,但我在NuGet获得的最新Roslyn中找不到它。有什么东西可以取而代之吗?

更新:不知怎的,我有1.0版本的Roslyn。将其更新为1.2后,我找到了GetTypeInfo方法。

1 个答案:

答案 0 :(得分:9)

您需要构建语义模型,如下所示:

var semanticModel = document.GetSemanticModel(cancellationToken);
var typeInfo = semanticModel.GetTypeInfo(expression, cancellationToken);