使用绑定句柄减少内存消耗

  在实际项目中,为了减少项目之间的依赖。反射是必不可少,由于反射的性能问题,大型项目中实际都是通过缓存解决。避免每次反射,一般情况下,使用字段缓存Type,下次直接通过Type创建实例。实际上,当缓存Type很多的情况下,应用程序的缓存占用将会很大。C#提供TypeHandle来减少缓存,以下演示TypeHandle和MethodHandle来恢复Type和MethodBase.

 public static void Main()
        {
            
            //Type可以缓存的TypeHandle对象
            var type = typeof(StringBuilder);
            var handle = type.TypeHandle;
            var typeFromHandle = Type.GetTypeFromHandle(handle);

            //方法缓存方式
            var method = typeof(StringBuilder).Assembly.GetExportedTypes()[0];
            var methodHandle = method.GetMethods()[0].MethodHandle;
            var methodFromHandle = MethodBase.GetMethodFromHandle(methodHandle);
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值