Введение в атрибуты C#
Атрибут записывают над классом, методом или свойством в квадратных скобках. Компилятор сохраняет эту пометку в сборке рядом с типом. При запуске она сама ничего не вызывает.
Смысл пометки понимает тот, кто её читает. Фреймворк видит, что метод отвечает на определённый запрос. Анализатор видит, что метод оставлен только для отладки. Сериализатор видит, как назвать поле в тексте. Без читателя атрибут - просто запись в сборке.
Пометки бывают готовые, из библиотек платформы, и свои: класс-атрибут с данными, которые нужно запомнить. В разделе показано, как объявить такую пометку и к чему её разрешено крепить.