c# 反射问题
比如现在有接口 ITest,里面有方法 Log ,
类 A 实现ITest,
定义一个工厂,返回ITest类型的实例
现在用工厂反射 ( Assembly.LoadFrom.CreateInstance ) 得到A的实例 instance
现在想调用Log方法,查了一下 ,有两种
1: type.GetMethod("Log").Invoke(instance)
2: instance.Log
这两种有什么区别啊?
------解决方案--------------------1、通过反射来调用Log函数。反射的类不需要定义接口
2、是通过CreateInstance再转成接口类型,可以直接调用Log函数。反射的类必须定义接口
1的效率要比2低
------解决方案--------------------1是你不确定有没有这个方法,就可以调用,
2是这个实例必须已经定义了这个方法你才能调用。