如何用EXPRESSION写一个LAMDA用于实现吧 eval 功能?
请教:
我想对任意的一个实体对象,以及以字符串形式标识的属性或变量名,获取该属性的内容 这个行为写成一个函数,该如何操作?
即:
object Eval(object/instance instance, string propertyName)
{
return instance[propertyName];
}
类似上面的,当propertyName为A时,返回 instance.A,当为B时返回 instance.B。
------解决方案--------------------不知我理解的是否有误
这个用反射来实现就可以了吧。。
------解决方案--------------------EXPRESSION这个东西太复杂。。。。。。
还是去年4月份左右研究过这东西。。。。
况且也只是将expression用来构建lamba
------解决方案--------------------
------解决方案--------------------要通用的话,反射是不可避免的
------解决方案--------------------最近正在写lambda解析心得的一个系列,是基于Irony的解析,你可以先参考一下。
http://blog.csdn.net/guoyichao/article/details/6637195
可以进行任意表达式的解析:
C# code
var i = your instance;
parser.With(()=>i).Parse<Func<object>>("()=>i.propertyName");