110,529
社区成员
发帖
与我相关
我的任务
分享
il.Emit(OpCodes.Callvirt, pc.PropertyInfo.GetSetMethod(true));
这样将来调用动态方法的时候pc.PropertyInfo.GetSetMethod(true)就不会再执行了
总之一句话,并不是emit提高了性能,而是通过这种方式使得原本会多次调用的反射只会调用一次,仅此而已
你要是不嫌麻烦,可以不用emit实现的,就是个缓存而已,使用动态方法,用emit是图省事
如果你还不明白,看看PetaPoco这个超轻量级的orm是如何实现的肯定就能明白了