Reflection is very usefull, and most of the time it needed horrible (but precious!) code to write. No matter about class, helpers, static methods, extension methods, or whatever, that code was awful.
Because every developer is lazy, I was looking for a elegant way to use reflection and Expression, and found this ReflectionUtility that was the right one for me: How to get C# property names without magic strings – static reflection.
You can call it this way:
ReflectionUtility.GetPropertyName(() => myOrder.CustomerCode);
This post worth a read: How to get C# property names without magic strings – static reflection