ParameterExpression left = Expression.Parameter(itemType, "s"); var des = typeof(TypeExtension).GetMethod("GetDescription"); //静态扩展方法: public static string GetDescription(this Enum value) 获取枚举的描述信息 Expression pro = Expression.Property(left, itemType.GetProperty("FileType")); //属性 //var pro1 = Expression.MakeMemberAccess(left, itemType.GetProperty("FileType")); var descall = Expression.Call(des, pro); //调用静态方法 Expression right = Expression.Call(descall, typeof(string).GetMethod("Contains", new Type[] { typeof(string) }), Expression.Constant("文")); //模糊查询
本段代码的需求是对集合中的枚举(描述值,通过静态方法获取)进行模糊查询,次行代码(Expression.Call(des, pro); //调用静态方法)出错:
System.ArgumentException : 类型为“XLY.SF.Domain.EnumFileItemType”的表达式不能用于方法“System.String GetDescription(System.Enum)”的类型为“System.Enum”的参数,求help!!!
已解决