是否有一种简单的方法可以访问定义了特定SyntaxTree
的文档的TypeSyntax
?
每当Identifier
为TypeSyntax
时,我都可以获得IdentifierNameSyntax
属性,但我仍然无法安全地访问类型的SyntaxTree
。
更新
以下是我目前的情况:
var right = exp.Right as ObjectCreationExpressionSyntax;
if (right != null) {
Compilation comp;
if ((comp = activeProject.GetCompilationAsync().Result) != null) {
bool cst = comp.ContainsSyntaxTree(right.Type.SyntaxTree);
var semanticModel = comp.GetSemanticModel(right.Type.SyntaxTree);
var typeInfo = semanticModel.GetTypeInfo(right.Type);
Console.WriteLine();
//var c = comp.GetSemanticModel(comp);
//var model = c.GetTypeInfo(right.Type as TypeSyntax);
//var v = model.Type.DeclaringSyntaxReferences;
}
}
答案 0 :(得分:1)
要阅读类型信息,您需要获得语义模型。
致电SemanticModel.GetSymbolInfo(TypeSyntax)
获取SymbolInfo
,然后阅读该符号的DeclaringSyntaxReferences
property。
请注意,部分类可能在多个文件中定义了多个符号。