¿Cómo obtener DisplayAttribute de una propiedad por Reflection?

Tengo un método de ayuda como este para obtener el PropertyName (tratando de evitar cadenas mágicas)

public static string GetPropertyName<T>(Expression<Func<T>> expression)
        {
            var body = (MemberExpression) expression.Body;
            return body.Member.Name;
        }

Sin embargo, a veces mis PropertyNames tampoco se nombran bien. Por lo tanto, me gustaría utilizar el DisplayAttribute.

[Display(Name = "Last Name")]
public string Lastname {get; set;}

Tenga en cuenta que estoy usando Silverlight 4.0. No pude encontrar el atributo habitual DisplayAttributeName del espacio de nombres para esto.

¿Cómo puedo cambiar mi método para leer el atributo (si está disponible) de la propiedad en su lugar?

Muchas gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta