2017-02-08 10 views
2

私はこのコードブロックを持っており、それに対して「Any」メソッドが呼び出されるオブジェクトの型を知りたいと思います。たとえば、このシナリオでは、私の期待される結果はDbSetメソッドが呼び出されるオブジェクトの型を取得する

using (AppDbContext context = new AppDbContext() /*Inherited from DbContext of EntityFramework*/) 

{ 
    context.Products.Any(); // context.Products is type of DbSet<Product> 
} 

それとも、この例である:

new int[]{}.Any() 

私の期待される結果はint型[]

答えて

1

は、SyntaxNodeあなたが興味を持っている検索取得することですそのCompilationを呼び出してから、SemanticModel.GetSymbolInfo()に電話してください。

+0

何ノードがシンボルを参照していない場合は? –

+0

@KrisVandermotten:あなたは何を期待していますか?どのようなノードについて話していますか? – SLaks

0

SemanticModel.GetTypeInfoを使用してください。例えば

、あなたがSyntaxNodeAnalysisContext contextExpressionSyntax expressionを持っている場合、あなたはどうなる

var type = context.SemanticModel.GetTypeInfo(expression, context.CancellationToken).Type; 
関連する問題