object obj = Assembly.Load(param.AssemblyName).CreateInstance(param.FullClassName, false);
            Type type = obj.GetType(); //获取当前对象的实例
                MethodInfo mdInfo = type.GetMethod(param.MethodName);
                object[] objParams = new object[] //参数数组
                {
                    param.Param 
                };
               DMSResult result = new DMSResult();
               result.Result = mdInfo.Invoke(obj, objParams);
请教各位英雄好汉,小第这种反射的方式,会不会性能很差, 说实话我并不知道他到底性能好不好,就在网上找了个DEMO然后自己改改,现在发现好像有点慢,请教大家有没有最好的方式,或者这种方式已经很不错了。

解决方案 »

  1.   


    现在我们页面所有的方法调用全部是用反射比如
          var obj = ExcuteBizServices("Chiang.BOS.OrderLogic", "Chiang.BOS.OrderLogic.OrderRefundManageLogic", "AddRMARefundRecord", refund);
    只要是访问逻辑层的方法全部用反射的方式,因为之前考虑到逻辑层要可以拆分的,所以就用反射,这样可以降低和WEB层的耦合性,但是如果一个页面有调用10个方法,那就要根据不同的类,不同的方法名和程序集去进行反射,可想而知效率是相当的低下呀,有没有什么一种办法只需要反射一次的,比如用反射+缓存 是否可以?
      

  2.   

    可以。缓存是个好想法。至于如何缓存,不太了解你是win还是web?