打印表达式树 [英] Print expression tree

查看:55
本文介绍了打印表达式树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




我试图打印表达式树,但计算出的值是C#。



我有一个方法:

Hi
I am trying to "print" the expression tree, but with the calculated values in C#.

I have a method:

public string GetElement(Expression<Predicate<T>> match)
        {
   ParameterExpression pe = Expression.Parameter(typeof(T), "s");
            BinaryExpression be = match.Body as BinaryExpression;

            var ExpressionTree = Expression.Lambda<Func<T, bool>>(match.Body, new[] { pe });
            return ExpressionTree;
}





如果我使用GetElement,它会正确显示(s => s.Name ==New York)但如果我尝试:





It shows correctly if I uses GetElement(s => s.Name == "New York") but if I try:

var name = "New York";
 GetElement(s=>s.Name == name) 



我得到s =>(s.Name == value(WpfTester.MainWindow) +<> c__DisplayClass0_0).name)



我尝试过:



我只试过


I get "s => (s.Name == value(WpfTester.MainWindow+<>c__DisplayClass0_0).name)"

What I have tried:

I have only tried

Expression.Lambda<Func<T, bool>>(match.Body, new[] { pe });

推荐答案

在我的<中查看 LINQString.cs 文件a href =https://www.codeproject.com/Articles/375413/RaptorDB-The-Document-Store-2> RaptorDB - 文档存储 [ ^ ] project。
See the LINQString.cs file in my RaptorDB - The Document Store[^] project.


这篇关于打印表达式树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆