2013-10-22 25 views
5

新しいClassA()、または "somestring"などの結果を生成する式があり、それに対応するExpressionSyntaxオブジェクトがある場合、どのようにINamedTypeSymbolオブジェクトを取得しますか表現の結果に対応する?Roslynでの式の結果の取得

多くのチュートリアルではGetTypeInfoメソッドについて言及していますが、NuGetから入手した最新のRoslynでは見つけることができません。それを置き換えるものはありますか?

更新:何とか私はRoslyn 1.0版を持っていました。 1.2に更新した後、GetTypeInfoメソッドが見つかりました。

答えて

9

あなたはこのように、セマンティックモデルを構築する必要があります:これは想定してい

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

あなたはVSの文書を持っています。 'CompilationUnitSyntax'だけの場合、' SemanticModel'を得るのはもっと複雑です。まず、 'SyntaxTree'を作成し、次に' Compilation'を作成し、 'SemanticModel'を得ることができます。 – svick

+0

@svick確かに、私はすでにSemanticModelインスタンスを取得する方法を知っています。あなたのコメントが他の人を助けることを願っ – ulu