public static IEnumerable <ISymbol> GetAttributeNamedParameters( this INamedTypeSymbol attributeSymbol, Compilation compilation, ISymbol within) { var systemAttributeType = compilation.AttributeType(); foreach (var type in attributeSymbol.GetBaseTypesAndThis()) { if (type.Equals(systemAttributeType)) { break; } foreach (var member in type.GetMembers()) { var namedParameter = IsAttributeNamedParameter(member, within ?? compilation.Assembly); if (namedParameter != null) { yield return(namedParameter); } } } }
public static IEnumerable<ISymbol> GetAttributeNamedParameters( this INamedTypeSymbol attributeSymbol, Compilation compilation, ISymbol within) { var systemAttributeType = compilation.AttributeType(); foreach (var type in attributeSymbol.GetBaseTypesAndThis()) { if (type.Equals(systemAttributeType)) { break; } foreach (var member in type.GetMembers()) { var namedParameter = IsAttributeNamedParameter(member, within ?? compilation.Assembly); if (namedParameter != null) { yield return namedParameter; } } } }