在解析lambda时怎么获取数据?

peng_min 2013-04-23 01:09:54

var brand = new Brand() { Id = Guid.NewGuid(), Name = "abc", Order = 3 };
var parser = new LambdaParser<Brand>();
var str = string.Empty;
str = parser.Where(o => o.Name == brand.GetName());

在where里,到了Method.Invoke,但获取不到brand,要怎么获取它?
...全文
205 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
peng_min 2013-04-24
  • 打赏
  • 举报
回复
已解决。表达树是需要调用Compile方法后才能执行的,同理将取到的每个对象成员调用部分再次包装成新的Lambda表达式进行执行就可以得到值了。 private void Value(Type type, Expression exp) { var val = Expression.Lambda<Func<object>>(exp).Compile()(); }
peng_min 2013-04-23
  • 打赏
  • 举报
回复
比如Brand.GetName()返回 "MS",那where方法就应该返回Brand.Name='MS',现在的问题是在调用MethodInfo的Invoke方法时,要求将方法所属实例传入,但我却不知道怎么获取那个实例。
风一样的大叔 2013-04-23
  • 打赏
  • 举报
回复
这个也可以单步调试的,待走到那按F11调试,添加监控可以看到值
peng_min 2013-04-23
  • 打赏
  • 举报
回复
顶下,给个资料或链接什么的也行。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧