I have an extension method to get property name as
public static string Name(this Expression> expression)
{
MemberExpression
You can't do this.PublishDateTime.Name(), as the only thing that will be passed into the extension method is the value or reference on which you call the extension method.
Whether it's a property, field, local variable or method result doesn't matter, it won't have a name that you can access inside the extension method.
The expression will be "verbose", see How can I add this method as an extension method to properties of my class? (thanks @Black0ut) to put it in a static helper class.