是否有类似于Cecil的Reflection.Emit.DynamicMethod?谢谢.
编辑:
对于以下事情呢?
没有办法用Cecil创建DynamicMethod,也没有等效的.
DynamicMethod与运行时紧密相关,而Cecil完全解耦.他们俩有一个完全独立的类型系统.DynamicMethod意味着动态,因此必须使用System.Reflection类型系统,因为它是运行时可用的系统.Mono.Cecil具有适用于静态分析的此类型系统的另一种表示,无需在运行时实际加载程序集.因此,如果您想使用DynamicMethod,则必须将其与其环境一起使用.
这个问题最初是在没有DynamicMethods或SRE的运行时环境中被问到的,就像Compact Framework一样,Cecil可以用来在运行时发出代码.
当然这是可能的,但是你必须支付加载组件的价格,这对CF设备来说是不小的代价.这意味着如果你可以通过使用Cecil创建一个只有一个静态方法的程序集来以某种方式模拟DynamicMethod,那听起来很糟糕.程序集不可收集(DynamicMethods),使其成为巨大的内存泄漏.
如果需要在Compact Framework上的运行时发出代码,请尽可能少地发出代码,并尽可能少地发出程序集.
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |