如何在roslyn中定义“节点”类型?

时间:2013-07-03 12:32:50

标签: c# roslyn

我有一个代码:

public override void VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
{                        
    Console.WriteLine("Name: {0}", node.Name);
}

如何定义节点类型?例如:如果节点类型是“Product”,那么不要写它。

1 个答案:

答案 0 :(得分:3)

顾名思义,MemberAccessExpressionSyntax仅包含有关表达式的语法信息,其中不包含任何关于类型的信息。

如果要获取类型信息,则需要为语法树(或树)创建Compilation并获取其SemanticModel。有了这个,你可以做类似的事情:

semanticModel.GetTypeInfo(node).Type.Name == "Product"