Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@rmariuzzo
Last active December 12, 2015 04:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmariuzzo/4716555 to your computer and use it in GitHub Desktop.
Save rmariuzzo/4716555 to your computer and use it in GitHub Desktop.
A better `ExpressionHelper.GetExpressionText` that handles Convert Expression.
/// <summary>
/// Return the expression text
/// </summary>
/// <typeparam name="TModel"></typeparam>
/// <param name="expression"></param>
/// <returns></returns>
public static string GetExpressionText<TModel>(Expression<Func<TModel, object>> expression)
{
var expr = (LambdaExpression)expression;
if (expr.Body.NodeType == ExpressionType.Convert)
{
var ue = expr.Body as UnaryExpression;
var me = ((ue != null) ? ue.Operand : null) as MemberExpression;
return me.Member.Name;
}
return ExpressionHelper.GetExpressionText(expr);
}
@paulcarroll
Copy link

Nice one, thanks :)
IMHO it makes the function a little more flexible if you change it to:

public static string GetExpressionText<TModel, TProperty>(Expression<Func<TModel, TProperty>> expression)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment