首页 > 解决方案 > 使用 ISyntaxReceiver 获取所有成员,甚至从 ClassDeclarationSyntax 继承一个

问题描述

我正在编写一个源生成器,但我需要获取一个类的所有方法,甚至是继承的方法,ClassDeclarationSyntax 有一个成员列表,其中包含该类的所有方法,但不幸的是,该列表不包括继承的方法。

下面是我为上下文所做的当前代码。

public class ControllerSyntaxReceiver : ISyntaxReceiver
{
    public List<ClassDeclarationSyntax> Candidates { get; set; }
    
    public void OnVisitSyntaxNode(SyntaxNode syntaxNode)
    {
        if (syntaxNode is ClassDeclarationSyntax classDeclaration)
        {
            var name = classDeclaration.Identifier.ValueText;
            if (name.EndsWith("Controller"))
            {
                Candidates.Add(classDeclaration);
            }
        }
    }
}

标签: c#roslynroslyn-code-analysis

解决方案


推荐阅读