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