一个Linq表达式的扩展函数帮助类

/// <summary>
	/// Linq表达式的扩展函数
	/// </summary>
	public static class ExpressionExtensions {
		/// <summary>
		/// 获取成员表达式中的成员信息
		/// </summary>
		/// <param name="expression"></param>
		/// <returns></returns>
		public static MemberInfo GetMemberInfo(this LambdaExpression expression) {
			var memberExpression = expression.Body as MemberExpression;
			if (memberExpression == null) {
				throw new ArgumentException("GetMemberAttribute require body of expression is MemberExpression");
			}
			return memberExpression.Member;
		}

		/// <summary>
		/// 获取成员表达式中成员带的属性对象
		/// </summary>
		/// <typeparam name="TAttribute"></typeparam>
		/// <param name="expression"></param>
		/// <returns></returns>
		public static TAttribute GetMemberAttribute<TAttribute>(this LambdaExpression expression)
			where TAttribute : Attribute {
			return expression.GetMemberInfo().GetCustomAttributes(
				typeof(TAttribute), true).FirstOrDefault() as TAttribute;
		}
	}

  

原文地址:https://www.cnblogs.com/x-poior/p/5388825.html