 <p>Unfortunately <strong>attributes are just metadata</strong>, meaning they cannot run or do something on their own.<br> However nothing prevents you from writing an extension method with a name like <code>SetDefaultValues</code> that reads default values from attributes and assigns them to properties.</p> <p>I've done a similar thing in a recent project, and it proved to be a good decision because <strong>it kept all default values defined in a declarative style in a single place</strong>.</p> <p>There is an <a href="http://www.codeproject.com/KB/dotnet/DefValInit.aspx" rel="nofollow">interesting article on CodeProject</a> peering into different strategies for implementation of <code>[DefaultValue]</code>-based initialization and comparing their performance. I suggest you check it out.</p>