Rex*_*ski 1 .net clr expression
我想要几个使用表达式树动态创建的例程。似乎使用它们的最简单方法是创建LambdaExpression然后调用LambdaExpression.
Compile()产生一个可调用的委托。
Compile()?TypeBuilder使用and创建一个新类型并包含所有例程作为该类型的静态方法是否更好MethodBuilder?欢迎任何建议!
DynamicMethod所有常见的权重,并且仅提供对a风格方法的原始访问;然后代码遍历表达式树,通过 ; 发出适当的操作码。最后,被称为AssemblyBuilerModuleBuilderTypeBuilderILGeneratorstaticILGeneratorCreateDelegateDynamicMethodDynamicMethod试图避免这种情况DynamicMethod可以做但TypeBuilder不能做(例如,可访问性跳过),有些事情TypeBuilder可以做但DynamicMethod不能做(实现接口、声明和使用字段等);如果你不需要这些东西,Expression.Compile()这是避免学习低级引用发出的一个很好的方法,这很容易出错(并且无效的 IL 通常会杀死运行时)Expression可以选择通过 AST 解释器实际运行来欺骗发射,而不是在不允许引用发射的运行时;Compile()返回此解释器的入口点,而不是动态编译方法的委托;如果您使用此选项,则此选项不可用TypeBuilder| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |