首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个库可以将方法解压缩成表达式树,并支持CLR4.0?

是否有一个库可以将方法解压缩成表达式树,并支持CLR4.0?
EN

Stack Overflow用户
提问于 2010-02-21 13:23:15
回答 2查看 1.3K关注 0票数 5

以前的问题已经问过,是否可以将已编译的委托转换为表达式树,例如:

当时理智的回答是:

  • 这是可能的,但非常困难,而且没有标准的库解决方案。
  • 用反光镜!

但幸运的是,有一些非常--疯狂/疯狂--伟大的人喜欢逆向工程,他们让困难的事情对我们其他人来说很容易。

显然,可以像Reflector那样将IL解压缩到C#,因此原则上可以用支持所有语句类型的CLR4.0表达式树作为目标。这很有趣,因为编译器对Expression<> lambda的内置特殊支持从未扩展到支持在编译器中构建语句表达式树,这并不重要。图书馆的解决方案可以填补这一空白。然后,我们将有一个高级别的起点来编写类似方面的代码操作,而不必处理原始IL。

正如上面链接的问题的答案所指出的,有一些有希望的迹象但是我还没有通过搜索找到是否有很大的进展。

那么,有没有人完成了这项工作,或者说已经做得很好了?

注释:CLR4.0现已发布。是时候再看一看了-看。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-12 15:53:44

根据答复,我将回答我的问题:

不是的。

当然,如果有人想出了一个更好的答案(或者我遇到了一个),我会更新。

票数 0
EN

Stack Overflow用户

发布于 2011-06-01 19:10:39

我做了一个支持.NET 3.5表达式树的库:

https://github.com/ashmind/expressive

我尝试做内部API,这样.NET 4.0的支持就不会那么难添加了。

您可以在IPipeline实现中添加或更改步骤,以实现这一点。

不过,我还没有做过的一件事是支持循环,这是很困难的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2305988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档