Property selector Expression <Func <T>>. Cómo obtener / establecer el valor de la propiedad seleccionada

Tengo un objeto que quiero construir de esta manera:

var foo = new FancyObject(customer, c=>c.Email); //customer has Email property

¿Cómo debo declarar el segundo parámetro?

¿Cómo se verá el código que accederá al setter / getter de propiedad seleccionado?

Upd. Hay varias entidades en el modelo que tienen propiedad de correo electrónico. Entonces, probablemente la firma se verá así:

public FancyObject(Entity holder, Expression<Func<T>> selector)

y la llamada del constructor

var foo = new FancyObject(customer, ()=>customer.Email);

Respuestas a la pregunta(2)

Su respuesta a la pregunta