Расширю ответ.
В AX2009 была необходимость сделать классы-контракты для последующей сериализации в XML || JSON, а без поддержки аттрибутов сделать это красиво не получалось.
Пришлось аттрибуты внедрить самому. И вот как получилось:
- На картинке 1 метод дата-контракта. Наличие макрос-аттрибута отличает его от простого parm метода.
- На картинке 3 показано, как быстро вычитать PropertyName (выделен зелёным), имея на входе голый Source. При этом, макрос-аттрибут может находиться совершенно в любом месте метода. Reg-Exp легко его выцепит.
- Макрос изнутри приведен на картинке 2. Можно без макроса,обычным комментом, но хочется визуально выделить, что это метод дата-контракта