Очевидно, у меня недостаточно репутации, чтобы комментировать, поэтому я должен сказать это как ответ.
Отражение касается информации о типе среды выполнения. Это механизм для обнаружения вещей о типе, о которых вы, программист, еще не знаете (возможно, кто-то еще предоставляет вам библиотеку кода и забыл задокументировать ее). Reflection предоставит вам любую необходимую вам информацию о публичном контракте класса, включая методы, свойства, поля, атрибуты и унаследованные интерфейсы / классы.
То, что вам нужно, однако, является парсером. Парсер - это стандартная концепция программирования, которая обрабатывает файлы и извлекает конкретную информацию. Вы ищете информацию в файлах кода, которые еще не являются типами времени выполнения, что означает, что у отражения пока нет информации о них, как бы вы ни были, поскольку они все еще являются файлами кода. В случае, если ваши глаза не достаточно (как я подозреваю, нет, если вы задали вопрос), вам нужно написать парсер. Извлечение конкретной информации из файла CS довольно просто. И регулярное выражение для атрибута: \[.+\]