随笔分类 -  Emit

发布一个用Emit实现的对象创建工厂
摘要:经常用反射创建对象的朋友一定用过Activator.CreateInstance方法,这段时间在学习IL用Emit也实现了这样一个功能,也支持多不同参数的构造。 不过动太方法的key构造并不理想所以在性能上有所损耗,但其性能还是优胜于Activator.CreateInstance方法。 以下是测试代码和工厂代码 public delegate object CreateInstance... 阅读全文

posted @ 2008-05-23 21:17 henry 阅读(2554) 评论(5) 推荐(1) 编辑

一个生成接口方法代理的Emit代码,支持泛型方法.
摘要:由于该方法是针对自需求编写的,所以不一定适合你的需要,但对于想学习的朋友可以作一个参考. private void MethodGenerator(ILGenerator il, MethodInfo method) { Type[] types = GetParameterTypes(method.GetParameters()); ... 阅读全文

posted @ 2008-05-22 09:11 henry 阅读(1556) 评论(5) 推荐(0) 编辑

靠近IL用DynamicMethod简单实现方法
摘要:最近一直在学习Emit,对指令有一些了解.总结了一些小经验在IL指令中经常的事情就 是把变量,参数推到堆栈上然后call一些方法,来来回回的这样做.下面贴个用DynamicMethod简单实现方法的代码:) using System; using System.Collections.Generic; using System.Reflection; using System.Reflection... 阅读全文

posted @ 2008-05-21 16:53 henry 阅读(4075) 评论(6) 推荐(0) 编辑

关于泛型方法内部获取CurrentMethodInfo迷惑
摘要:前段时间在写IL实现接口时遇到一个很迷惑的事情,就是无论以什么类型调用泛型方法其内部得到的CurrentMethodInfo都是一样,并不有带任何明确类型的信息;最后在没办法的情况我只好修改的IL的实现.下面分析一下发生的问题和解决我使用的解决方法. 假设有以下一个泛型方法 public IList ListData(T name) { MethodI... 阅读全文

posted @ 2008-05-16 13:07 henry 阅读(1807) 评论(1) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示