2013-10-22 34 views
5

Bir sonuç üretiyorsa, yeni ClassA() veya "somestring" veya başka bir deyişle, bir ExpressionSyntax nesnesine sahip olursam, INamedTypeSymbol nesnesini nasıl alabilirim? ifadesinin sonucuna karşılık gelen?İfade sonucunun türünü alma Roslyn

Birçok öğretici GetTypeInfo yönteminden bahsetmektedir, ancak bunu en son RosGen'de bulduğum Roslyn'de bulamıyorum. Değiştiren bir şey var mı?

Güncelleme: Her nasılsa Roslyn'in 1.0 sürümü vardı. 1.2'ye güncelledikten sonra GetTypeInfo yöntemini buldum.

cevap

9

Bunu, semantik modeli oluşturmak gerekir: Bu varsayar

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

Bir VS belgesi var. Eğer bir 'CompilationUnitSyntax' varsa,' SemanticModel''i almak daha karmaşıktır: ilk önce bir 'SyntaxTree' yaratabilirsiniz, sonra' Derleme'' ve 'SemanticModel'ı elde edebilecek tghen'leri. – svick

+0

@svick Gerçekten, ama SemanticModel örneğini nasıl alacağımı biliyorum. Umarım yorumunuz başkalarına yardımcı olur. – ulu

İlgili konular