如何定义“;节点“;键入roslyn

本文关键字:节点 键入 roslyn 何定义 定义 | 更新日期: 2023-09-27 18:20:47

我有一个代码:

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

如何定义节点类型?例如:如果节点类型为"Product",则不要编写它。

如何定义“;节点“;键入roslyn

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

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

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