我想使用 Roslyn 来获取一段代码中使用的所有类型。我从以下 SyntaxWalker 开始:
public class DependenciesCollector : SyntaxWalker
{
public override void VisitIdentifierName(IdentifierNameSyntax node)
{
if (!(node.Parent is UsingDirectiveSyntax))
{
Console.WriteLine(node.PlainName);
}
base.VisitIdentifierName(node);
}
public override void VisitMemberAccessExpression(MemberAccessExpressionSyntax node)
{
Console.WriteLine(node.Expression + "." + node.Name);
base.VisitMemberAccessExpression(node);
}
}
但是,它不仅向我显示了使用的(部分)类型,还显示了 using 语句,而我(如您所见)试图不显示 using 语句。你能告诉我这段代码有什么问题吗?
简而言之:我只想要不包括名称空间的类型。这甚至可能吗?(System.Console 之类的东西可以,系统不行)