namespace Caliburn.Micro.Core { using System.Linq.Expressions; using System.Reflection; /// /// Extension for . /// public static class ExpressionExtensions { /// /// Converts an expression into a . /// /// The expression to convert. /// The member info. public static MemberInfo GetMemberInfo(this Expression expression) { var lambda = (LambdaExpression) expression; MemberExpression memberExpression; if (lambda.Body is UnaryExpression) { var unaryExpression = (UnaryExpression) lambda.Body; memberExpression = (MemberExpression) unaryExpression.Operand; } else { memberExpression = (MemberExpression) lambda.Body; } return memberExpression.Member; } } }