我有一个代码:
public override void VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
{
Console.WriteLine("Name: {0}", node.Name);
}
如何定义节点类型?例如:如果节点类型为"Product",则不要编写它。
顾名思义,MemberAccessExpressionSyntax
只包含有关表达式的语法信息,而不包含任何有关类型的信息。
如果要获取类型信息,则需要为语法树创建一个Compilation
并获取其SemanticModel
。有了这个,你可以做一些类似的事情:
semanticModel.GetTypeInfo(node).Type.Name == "Product"