Я думал, что смогу перечислять типы, используя IMetaDataImport.EnumTypeDefs и
для каждого возвращенного токена вызовите IMetaDataImport.EnumCustomAttributes.
Это работает, поскольку я получаю массив токенов mdCustomAttribute. Используя эти токены, я могу получить токен метаданных, представляющий тип возвращаемого пользовательского атрибута, вызвав IMetaDataImport.GetCustomAttributeProps.
Сравнивая мои результаты с ILDASM, я вижу, что это соответствует "CustomAttribute Type", который сообщает ILDASM. Однако я не могу понять, как определить «CustomAttributeName», о котором сообщает ILDASM. Это то, чего я действительно хочу!
Хотя мне было бы интересно узнать, как получить CustomAttributeName, я бы согласился на альтернативный подход к решению проблемы.