Вдохновленный вопросом SO. Класс Attribute имеет несколько перегрузок для метода IsDefined(). Покрытыми являются атрибуты, применяемые к Assembly, Module, MemberInfo, ParameterInfo. Перегрузка MemberInfo охватывает PropertyInfo, FieldInfo, EventInfo, MethodInfo, ConstructorInfo.
Это касается большинства атрибутов. За исключением одной крупногабаритной: нет перегрузки для Attribute.IsDefined(Type, Type), чтобы вы могли проверить, определен ли атрибут в классе. Или struct, delegate или enum, если на то пошло.
Не то, чтобы это настоящая проблема, Type.GetCustomAttributes() может это исправить. Но все типы BlahInfo тоже есть. Я удивляюсь отсутствию симметрии. Я не могу сказать, почему это проблема для Type. Угадать проблему наследства мне это не объясняет. Наличие ValueType в миксе может быть лидером, но не имеет смысла. Я не покупаю "они забыли", они никогда этого не делают.
Почему эта перегрузка отсутствует?