【发布时间】:2014-05-04 18:29:25
【问题描述】:
我需要一个表达式树的字符串转换所以
我创建了一个表达式树并像这样使用 ToString 方法
var exp = ((Expression<Func<UserDetailInfo, bool>>) (x => x.OperationID == operationId)).ToString();
但结果很奇怪
x => (x.OperationID == value(TCS.Proxy.PermissionProxy+<>c__DisplayClass5).operationId)
TCS.Proxy.PermissionProxy 是我在 WCF 代理项目中的课程!!! (我将表达式从客户端发送到代理)
但是当我自己创建这个表达式时,一切都很好
var entity = Expression.Parameter(typeof(UserDetailInfo));
var constant = Expression.Constant(operationId);
var e = Expression.Equal(Expression.Property(entity, "OperationID"), constant);
var exp = Expression.Lambda<Func<UserDetailInfo, bool>>(e, entity).ToString();
结果还可以
Param_0 => (Param_0.OperationID == operationId) // I Need this
我如何使用 ToString() 来生成类似上面的结果?
为什么两个结果不同?
* 我将表达式转换为字符串以将其从客户端传输到 WCF 服务,因此我需要正确的字符串才能在服务器端从字符串转换为表达式
【问题讨论】:
标签: c# wcf serialization expression-trees tostring