In this answer to the question of the fastest way to determine if a property contains a given attribute, user Darin Dimitrov posited that expression trees are safer than reflect
From my limited knowledge of .NET the expression tree way seems to do type checking.