// -------------------------------------------------------------------------------------------------------------------- // // This file is part of the HandBrake source code - It may be used under the terms of the GNU General Public License. // // // The extension methods. // // -------------------------------------------------------------------------------------------------------------------- namespace HandBrakeWPF.Utilities { using System.Linq.Expressions; using System.Reflection; /// /// The extension methods. /// public static class ExtensionMethods { /// /// 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; } } }