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;
}
}
}