我想为最终表达式连接两个表达式
Expression<Func<T, string>>
所以我创建了表达式 belwo 代码仅适用于字符串类型,如果我将 memberExpression 作为 Int32 或 DateTime 抛出异常
“System.Int32”类型的表达式不能用于“System.String Concat(System.String, System.String)”方法的“System.String”类型参数
如果我将表达式转换为
var conversion = Expression.Convert(memberExpression, typeof (string));
在“System.Int32”和“System.String”类型之间没有定义强制运算符。
请帮我解决
代码
MethodInfo bodyContactMethod = typeof (string).GetMethod("Concat",new[] {typeof (string), typeof (string)});
ParameterExpression parameter = Expression.Parameter(typeof (T));
body = Expression.Call(bodyContactMethod, cons, memberExpression);
return Expression.Lambda<Func<T, string>>(body, parameter);