К сожалению, атрибуты - это просто метаданные , что означает, что они не могут запускаться или что-то делать самостоятельно.
Однако ничто не мешает вам написать метод расширения с именем, например SetDefaultValues
, который считывает значения по умолчанию изАтрибуты и присваивает их свойствам.
В недавнем проекте я проделал аналогичную работу, и это оказалось хорошим решением, поскольку он сохранил все значения по умолчанию, определенные в декларативном стиле, в одномplace .
Есть интересная статья о CodeProject , посвященная различным стратегиям реализации инициализации на основе [DefaultValue]
и сравнению их производительности.Я предлагаю вам проверить это.