Reflection позволяет программе проверять и манипулировать типами, методами и свойствами во время выполнения — даже теми, которые неизвестны во время компиляции. Attributes прикрепляют декларативные метаданные к коду, которые инструменты и фреймворки читают (часто через reflection) для управления поведением. Вместе они обеспечивают большую часть "магии" фреймворка .NET (сериализация, DI, ORM, валидация).
