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のようなものは問題ありませんが、Systemは問題ありません)