Método de extensão para obter o nome da propriedade

Eu tenho um método de extensão para obter o nome da propriedade como

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

Estou chamando isso de

string Name = ((Expression<Func<DateTime>>)(() => this.PublishDateTime)).Name();

Isso está funcionando bem e me devolvePublishDateTime Como corda.

No entanto, eu tenho um problema com a declaração de chamada, ela parece muito complexa e eu quero algo assim.

this.PublishDateTime.Name()

Alguém pode modificar meu método de extensão?

questionAnswers(3)

yourAnswerToTheQuestion