コード例 #1
0
    private static ImmutableArray <ISymbol> BuildSymbols(SyntaxNodeAnalysisContext syntaxNodeAnalysisContext, INamedTypeSymbol sourceType, string fullName)
    {
        ImmutableArray <ISymbol> symbols =
            syntaxNodeAnalysisContext.SemanticModel.LookupSymbols(position: 0, container: sourceType, name: fullName, includeReducedExtensionMethods: true);

        foreach (INamedTypeSymbol?baseType in sourceType.BaseClasses())
        {
            symbols = symbols.AddRange(
                syntaxNodeAnalysisContext.SemanticModel.LookupSymbols(position: 0, container: baseType, name: fullName, includeReducedExtensionMethods: true));
        }

        foreach (INamedTypeSymbol interfaceType in sourceType.AllInterfaces)
        {
            symbols = symbols.AddRange(
                syntaxNodeAnalysisContext.SemanticModel.LookupSymbols(position: 0, container: interfaceType, name: fullName, includeReducedExtensionMethods: true));
        }

        Dump(symbols);

        return(symbols);
    }