Obter tipo de propriedade por MemberExpression

Eu faço uma pergunta semelhanteAqui , assuma este tipo:

<code> public class Product {

public string Name { get; set; }
public string Title { get; set; }
public string Category { get; set; }
public bool IsAllowed { get; set; }

}
</code>

e este que usaMemberExpression :

<code>public class HelperClass<T> {

    public static void Property<TProp>(Expression<Func<T, TProp>> expression) {

        var body = expression.Body as MemberExpression;

        if(body == null) throw new ArgumentException("'expression' should be a member expression");

        string propName = body.Member.Name;
        Type proptype = null;

    }

}
</code>

Eu uso assim:

<code>HelperClass<Product>.Property(p => p.IsAllowed);
</code>

emHelperClass Eu só preciso do nome da propriedade (neste exemploIsAllowed) e tipo de propriedade (neste exemploBoolean) Assim, posso obter o nome da propriedade, mas não consigo obter o tipo de propriedade. Eu vejo o tipo de propriedade na depuração da seguinte imagem mostrada:

Então, qual é a sua sugestão para obter o tipo de propriedade?

questionAnswers(1)

yourAnswerToTheQuestion